From 63ae27afef6e4e28b28d2f195b537edb1e396db5 Mon Sep 17 00:00:00 2001 From: Andrew Prokhorenkov Date: Fri, 29 Jul 2022 20:49:06 -0500 Subject: [PATCH 01/59] ctds integration changes Signed-off-by: Andrew Prokhorenkov ...at https://github.com/uc-cdis/Atlas/pull/34/commits/6a6e63c5bf0c397288be28e15ec4ea20e5f031f9 --- .github/workflows/image_build_push.yaml | 15 + .pre-commit-config.yaml | 11 + .secrets.baseline | 1535 +++++++++++++++++++++++ Dockerfile | 4 +- 4 files changed, 1563 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/image_build_push.yaml create mode 100644 .pre-commit-config.yaml create mode 100644 .secrets.baseline diff --git a/.github/workflows/image_build_push.yaml b/.github/workflows/image_build_push.yaml new file mode 100644 index 000000000..1558f74c4 --- /dev/null +++ b/.github/workflows/image_build_push.yaml @@ -0,0 +1,15 @@ +name: Build Image and Push to Quay + +on: push + +jobs: + ci: + name: Build Image and Push to Quay + uses: uc-cdis/.github/.github/workflows/image_build_push.yaml@master + with: + OVERRIDE_REPO_NAME: "ohdsi-atlas" + secrets: + ECR_AWS_ACCESS_KEY_ID: ${{ secrets.ECR_AWS_ACCESS_KEY_ID }} + ECR_AWS_SECRET_ACCESS_KEY: ${{ secrets.ECR_AWS_SECRET_ACCESS_KEY }} + QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }} + QUAY_ROBOT_TOKEN: ${{ secrets.QUAY_ROBOT_TOKEN }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..8412d22a4 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,11 @@ +repos: +- repo: git@github.com:Yelp/detect-secrets + rev: v1.3.0 + hooks: + - id: detect-secrets + args: ['--baseline', '.secrets.baseline'] +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.3.0 + hooks: + - id: no-commit-to-branch + args: [--branch, develop, --branch, master, --pattern, release/.*] diff --git a/.secrets.baseline b/.secrets.baseline new file mode 100644 index 000000000..1e78da464 --- /dev/null +++ b/.secrets.baseline @@ -0,0 +1,1535 @@ +{ + "version": "1.3.0", + "plugins_used": [ + { + "name": "ArtifactoryDetector" + }, + { + "name": "AWSKeyDetector" + }, + { + "name": "AzureStorageKeyDetector" + }, + { + "name": "Base64HighEntropyString", + "limit": 4.5 + }, + { + "name": "BasicAuthDetector" + }, + { + "name": "CloudantDetector" + }, + { + "name": "GitHubTokenDetector" + }, + { + "name": "HexHighEntropyString", + "limit": 3.0 + }, + { + "name": "IbmCloudIamDetector" + }, + { + "name": "IbmCosHmacDetector" + }, + { + "name": "JwtTokenDetector" + }, + { + "name": "KeywordDetector", + "keyword_exclude": "" + }, + { + "name": "MailchimpDetector" + }, + { + "name": "NpmDetector" + }, + { + "name": "PrivateKeyDetector" + }, + { + "name": "SendGridDetector" + }, + { + "name": "SlackDetector" + }, + { + "name": "SoftlayerDetector" + }, + { + "name": "SquareOAuthDetector" + }, + { + "name": "StripeDetector" + }, + { + "name": "TwilioKeyDetector" + } + ], + "filters_used": [ + { + "path": "detect_secrets.filters.allowlist.is_line_allowlisted" + }, + { + "path": "detect_secrets.filters.common.is_ignored_due_to_verification_policies", + "min_level": 2 + }, + { + "path": "detect_secrets.filters.heuristic.is_indirect_reference" + }, + { + "path": "detect_secrets.filters.heuristic.is_likely_id_string" + }, + { + "path": "detect_secrets.filters.heuristic.is_lock_file" + }, + { + "path": "detect_secrets.filters.heuristic.is_not_alphanumeric_string" + }, + { + "path": "detect_secrets.filters.heuristic.is_potential_uuid" + }, + { + "path": "detect_secrets.filters.heuristic.is_prefixed_with_dollar_sign" + }, + { + "path": "detect_secrets.filters.heuristic.is_sequential_string" + }, + { + "path": "detect_secrets.filters.heuristic.is_swagger_file" + }, + { + "path": "detect_secrets.filters.heuristic.is_templated_secret" + } + ], + "results": { + "js/assets/d3-scale-chromatic.1.3.0.min.js": [ + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "010ee250868c6ff616ec04de5c6167a7679af561", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "02a3dd3d953d09d75ad25b2320b04c582257f4a7", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "02efb92f0acc8db523c7e9b8a38f66304a038dcd", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "033f7cd4075139335d423c04d4b3d53d0494bf61", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "064dc46c9a5f90b7dfd17d29a4e1f27d5ff096b1", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "06dd05580af8a2952bdede0ae988f5a2a7fb4f39", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "087e742b6213eb20ec0c9ba1188e241759e84f46", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "094e335216f1fb309ea53a92057fcf431ba5fa4b", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "0b827e1ce36a6e7126294b56e6dece612906ef1a", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "0c5853cd5579342ba9e76667408b234fd883e4ee", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "0ede3fb9831b1acadbba0d0d278841a02bf69c64", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "10a999713f4a18577ad99229a369d669561e751d", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "137b47ef5a17dafbee1d086a72dcc89987d1e79f", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "15c89c755ff22b879c7343e3a20e63c959ec80cd", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "16f17d3a92b54685cb3782ba48986d22759371cc", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "17076a0132112cece193b8058df15fbdebbc41f4", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "1722a37828c5b4ffe2116b7a9301faf131c58588", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "17552704c70caf6c3d4953a77e1f7784c1eeaae3", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "1768d6a54935a9150208e0a5f9200d54d04d24d7", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "19cb9c09e7006ee0cdc360c55b4625a1199b72b9", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "1a57a6d5dbb1b8d2120564c6da531e25cffe7b73", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "1b03a09d411c0bd983c67d460e8918e1d33eb958", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "1e33f15430da426947e8b60504e390ad65cc8079", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "1fe6c17446dd89b9f060d021f856b9c93694c2c0", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "20405ba6cbd264fc5b49eea0cc849b2d9ae0e393", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "20c2cb9237604cdf52c08027dba54fc6128ad69f", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "24703c173e6a859be91be8efe12d131329f07fe5", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "25271ff6d049a89032be6ecb9bc43666c9560713", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "268fda0f5c09ca9e361c047c3a23db85f39dd5c3", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "27b14e2884fa0add3d4670e72db46ae5e5b18a87", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "2a2de48035e94d3adbd6869fe16e1c4a2ee0b458", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "2bf9a3db41fbbe7e9d1ac1a5cea42d0fd79c3a7c", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "2fd15336d3ed55b621cb89ed77f20d0903c87235", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "32220716a47f57d6294b3715c3ccc1b56ca17cd5", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "339ad02cad6907f325bf2a261ee244b560682f4e", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "3417f07568d034c705dfb7f69c59a13a4115e51c", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "346931603c18866952276a146cc42e995b67dd11", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "353a3ab1d0aba81d2dd1f0c5d26e668193d052ab", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "3595dcd7b54dbd8a4fe96f2cb0b222649a905234", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "3870fbab1b9e4e0e8dbf614139a543927f036c61", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "39fc2550f27d983de5a2f9b6da00ca51b3f498fe", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "3ced93486c7850c7dfa9603de42d5b71a84579f5", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "3e7e6c88540e569766916b0ed1f6cecc349d1153", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "3ef22615f58a8f42010a9e214ce3ab7ed01cb36d", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "43ba6b4a9912f46b307c422a9e035310ad41b85c", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "44f8a32e5fc30fa0a9bad87571ce70264bc95503", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "44fedc3183758ea48d2088b4f2eade15b2f0a583", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "46ff889119b9188a7ba84f340a38d89883be6a65", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "4d380771a15b5fd316ea49cbb543601a86047948", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "4e010ea0fe7cc5cd23aea30239595b776f9fefbb", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "4f1dd20816d9115b795e042b2d6eed31c5bcbe83", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "4f3df3d53feda851bd9fc2d68024113a5908b892", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "519bed939288a72cf9db42cd626b7b3dfe0a5efe", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "52585b528f22581000b784cd2c7c6a64f78e2b92", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "53dbfddc0ff4d36c093806460b292962e1dc08bf", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "550c2d2464222ba5fd2c02184ebb9de0024a2a23", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "55315f1fc512cd87b53bbfc7aa6702164d326a90", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "5555d7e3d9aed7fc4a6f2ad6701055e13f567eca", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "55a9895abf56cedafa3f288913e509ea173008a9", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "55c18cb55f7f0e00459f69c72f9ce89f870e4b1e", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "56b88dbe9c39d3da37bd8b4ce330187d0e52302d", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "5867c91c692fc12479ab904f3f87017f76a1550f", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "58e19e643b3aee2764feac11daa194bf31a1db2d", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "59c723107e07a41452c0dc8640724da8a9140127", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "59f901a43ebf4392e78e422a14e094a4f3188dde", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "5af651962f5b537ec30e01e86c6cd852154f5d35", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "5af99bae6f22b58715898cb1c625987fd4f0a990", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "5cf8310f168b00e64cdf9b7fab5fbfa5bf3efa28", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "5fbaf6effd649f53b3243a8c10f2f8ef97597f6d", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "60417b7d66ed0dd752d08dd3effa4848a42eae9c", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "61b665d95afff554c3df4733c2b2eabbbde94bb7", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "629339d709bfd8d846bbd5382cf0f0c3470ba467", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "64efe38743613013b1cdc143da92e8181d00b210", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "676bf61bf24d063d1150f953c6acd9bb46561986", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "6848e2a2cc7a85beab02f89255e79e2f55b5f5a4", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "68aeb6bb59fe3a49ca97c9b46da92998512a0a0a", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "697e8217312d161df06db2f3018a154e75d64871", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "6a4e9b8a78675a984aa7c8a4c4c2a86a33f06899", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "6a85792720a2b59dfe561d01c186a32d17e53948", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "6b7e749280b306c415efb82504e54d9ba7c26d8b", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "6ba29ec629e86216a156f2295a22a07658e99e5f", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "6ddf13f598a8ee2de9a0324e7f3849bd0616a129", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "6dfc0a8cb4ff88f018a6b8b561ff547ffdefceb7", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "6e4e9e05dadf426e344d8ee52eebb6eabc87bdfe", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "6e7a5a5416ecd7dbae7b362562f78642dd0374ca", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "6ea182881ad36b1807027ece91b9fc4bd2c5c549", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "6ed4fc3583c2bf32a2562727e736040959507f83", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "7225269b5362b44603f6f81e29a8dc42494fd63d", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "722b0d7aa90d8d50c480a78bc2dc4fd2abe1a68a", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "730e50efd389dd6350b35784c990e127603e9fd5", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "74e6abd594ceeab8e8c7d95fd52dbb22c6a89768", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "74f540a96e75e9ab84e512b6f6e968c1ec2f9737", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "758cd42a1e5907a5ac48cf6e0dbb2782d8ecbcd9", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "75e0e1108a29b751a358f7e448b2f93a4fe53f26", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "77d9acc36a6bd296caa24207b66d12c01b3fd9ae", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "78e141084e80ca8a32482ebe218758d767982ff6", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "79a663bff8df3c559794a8c35551c89b0db148aa", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "7b547034e5d159d5b8e22f1452379332a46322da", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "7ce63013655703210c9484ba90a5d6bc815a8d66", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "7dc6230a234c05587f97923642e0dc016135cab5", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "7de7942932d3955c2608e21722094148ba2fb1a2", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "801c2a5f2b147626512ff986be2c7edfbbb4fe1d", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "80ad951f3a1d5b03ef41cd47ded13086dfdb3858", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "84d063b8b4bfad37fb39315d40bbf5af52955eda", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "856c0cb401bcf396a8c6db74b5409b86c6c9d2b4", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "85ec4f2b08dc4fa7d0a8aef2f594ab6c7cce6a89", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "86cff3e4d262a76ddb9d6e0c4eaa60874f1487bb", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "86f404fa8a9d081a554324147b1defae9531e320", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "88733f905a41d90c883f1e8df05ec92a4872d673", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "8932f0b17027720b94c816b721bc20fa670fa89a", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "8a57ee1e954511c1753dd2266ce5db7f3b91bbb2", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "8a5fd02905cd08a8b1d1cc6751e3b8e6e9f7aa7e", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "8cc276eead2d0bf2430e395868dae595c4af1c7b", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "9131f0cf59f12da98a7f55148e2faad915b4dd78", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "91bf7499ac7f16394a22c55ecccdf68c455a77c5", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "91f98e50e15bc3a3416d6fb8a8afbe4bb0720ac6", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "931851baed3c0440078cbc7be4eb234fad1ad6db", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "9407d5df5b714cd44057ad6b40281ac7104350b1", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "94c03460d08f688e4b111228277bdae9c93ae1c2", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "951ffe83bf1c3a9b11a8e94079dcd8dc8b43a628", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "96cd4cc18aefe598a994d4afe28118349633b246", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "987b9d9cb116b2c1cf6226a8c17d80b54a04a200", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "9e5b802afbc0db102ad0e3c66ad4e3c41389322f", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "9e6ab49458762b44d9bad700eb5ad25eb87f3df8", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "9f90f99082f46b7ed7f0c8a69d70a8cbb21f442f", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "a187e2b44a0097655e97464f70e9a4a891f29c48", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "a35af7b4b45c6a57e7ba0d39ed75d113eb17d42c", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "a38dfe79f65df6e8661a882d15a710b56ef04e2c", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "a3fe14feb3971813a9a5e30972326164cfa292d7", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "a45da0f36a2a96e10256bdf7d4cd0416e9278c1e", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "a4fc5ee0f219f5e4d74cc16732defccd7d4a4495", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "a60e87f4b9731e1ccff1282a817af63f19edab6d", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "a676a2a77fda5870f999a38ca96ad4d8fd91827a", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "a7e8f84606160609ec7c0df5e589458afac5096a", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "a933a54b62cd67a61f97ab5c5f6629430605ef4f", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "aa096027c969906daebbfeb2d5c3f9e8f300bf8d", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "aa8a875576bf73eab9187868eed2ef41d4bfe1c1", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "aaf41fd80a5b95c1608adf6ed8c379901a2c5c5b", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "aef7366d93f4e8d646968386c4b38df5b54b95f3", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "afd7d6e8e35eb0e09162f4abda3899b8bcf82b0e", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "b02e3394ad066076f30004e5c487958c18e7cec5", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "b2560db24ef893e1965ffc87b9ec8dac6d19885c", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "b3956c18063afaa955f84befa5d032cdd236d4bf", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "b3df3594d9967834e5d637979bb6eace6bf46889", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "b4fb15c5d9ded448e899cd7a22f62e5b50f548c0", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "b50a23f31f930ff17b4c8f4f1cdc2df1e2dcdd28", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "b5fef5c159147415535d4858aa385068bc2eed0e", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "b7a3e87751fc3ae3d6af62f3a9b6ccca311ff203", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "b81c65190a86c31d124653bd687935db8774f5c8", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "b821f80a7e79e6a5b1cca1e53287695c0161efb2", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "b83364de8047622abd5b879de693e4671fb9ff92", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "b8a36bc1fd7394b594548298d40f9783f31d721f", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "ba7a056028088f58557b2602a780968f24e2e304", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "bb454f243ac10f8491f5b8c350c0d3e3db9b9d0f", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "bd32abe4c59e804dd76bc0e4c96d2dd2e52da947", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "bd754f632928cf9a6225b61513ea01441ca22d90", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "c03f29408f04fe356bde90d1aeeb2af497796826", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "c18b95e4fc4707dab8074f165d04d2efeb82226d", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "c3b7dd4d32bb3bb6d677a608bd1e2327ad05c0fc", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "c3c5403910007166ab8b974aaa08961a40d9e653", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "c3ec102e9208dd27c4eabd34f219b058decdff1d", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "c561499db197eb3c1c426398999ba800217c466d", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "c829fae18352e113a9d4e48a2ae5157e514110e8", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "cce0c01f3af17f3cf5811464375341869556fc99", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "cd03440e97af55697914444e5891cd1d1c736874", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "ce62c2b3c1275c938c24cefdec12ae9cbda23678", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "ced08240a74dc246249f2d9e33d43240916e9001", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "cf92295af8371af1177704259eb4fb4c8d3ceff5", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "cfd9772b3305fce612d6cfbc5eedf82725d91a3d", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "d426c59dc4ca319d8f1ecc2a2633f1cf588cffaf", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "d5ce28368d4352bbe11b830fdfd905252c3fdb9b", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "d6b3d7e0a7f97218249c125747309671b87cff0f", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "d87832ccf0b3953fd55ff394979639193d726f02", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "d9357ed5e5b3ef7a00e0453c3ff6b6b1af8cb744", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "dc5e997d91983d9640b3e21d83a78c3f0ff3ee78", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "dcf0b4d8f13a8658a55d5a7d0bc09f56888729e1", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "dd143a913caeb3889e91f1be6b633637075b476c", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "dd7fd3a1166d872d742222ff68ae1c8bcc942f9a", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "dfbbaad57ea6f78c59e5d56f7a26046f216bddc9", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "dfd3c4fbb6f97b4a24ef894732fb244e3541cfca", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "e0e04575cbbb602a128a202838d6fd550920b27c", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "e1f8501cbc2b1daef351976b6ce8f28d930f8b3b", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "e2fa12f055b9832acb7054f9af167237ca986cbd", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "e5022023bbfcc703661e78432e4ddc0b27eeef62", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "e7153ba2a94435a5ba0b1f84a69890e31199f056", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "e79d2194550ee64c3275e88a61fda3374847adf1", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "ec204715a8ed5e717806d6ed42756a969e823fe5", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "ed1484010237fdeef3bb0120bf0959c36db271cc", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "ee4c8c0a98c0bb4902050a178ac2d7bcac7d1d7f", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "f08200ea97cd5fdcc77113dbead01339b9a885f6", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "f39e9a32c45da46c23399618d28bad40a9c360b7", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "f3d822bac19b390b3499c9670d939a4eaac167c2", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "f636e2afdb4a96eb0cf1dc96f0a252230e6778a5", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "f6d618729ff2036c3667bd0a5132d248c11168bf", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "f8bb808404a61761845c888b582e446f9a3a5948", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "f8c386d4b56c87b8ef68e4527e1f6c769f7dba02", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "fa921fd526e96ff82f663d844ec087733da325c5", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "fad491a101771adad3f61b91a42c5a5a7734887e", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "fcbc10d3a08fe17a25321109cf31bb4d77956f06", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "fd5e33d17b8fd268351e3d1eb47c20187997e8e9", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "fe686551be16c9c3eba03634795b41637038794b", + "is_verified": false, + "line_number": 2 + }, + { + "type": "Hex High Entropy String", + "filename": "js/assets/d3-scale-chromatic.1.3.0.min.js", + "hashed_secret": "ff811fe23f85e13980baeae3e37f0c2146454e55", + "is_verified": false, + "line_number": 2 + } + ], + "js/pages/characterizations/stubs/characterization-results-data.r": [ + { + "type": "Secret Keyword", + "filename": "js/pages/characterizations/stubs/characterization-results-data.r", + "hashed_secret": "bb470fb830643e2e1a36d81473cf03ae18733dfd", + "is_verified": false, + "line_number": 7 + } + ] + }, + "generated_at": "2022-07-30T01:48:55Z" +} diff --git a/Dockerfile b/Dockerfile index 04f5d9692..6e36da3ec 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Build the source -FROM docker.io/library/node:18.14.1-alpine@sha256:045b1a1c90bdfd8fcaad0769922aa16c401e31867d8bf5833365b0874884bbae as builder +FROM quay.io/cdis/node:14-alpine as builder WORKDIR /code @@ -26,7 +26,7 @@ RUN find . -type f "(" \ | xargs -0 -n 1 gzip -kf # Production Nginx image -FROM docker.io/nginxinc/nginx-unprivileged:1.27.2-alpine +FROM quay.io/cdis/nginx-unprivileged:1.20-alpine LABEL org.opencontainers.image.title="OHDSI-Atlas" LABEL org.opencontainers.image.authors="Joris Borgdorff , Lee Evans - www.ltscomputingllc.com, Shaun Turner" From f2d217fdafc66c5dc9e88be00901a68cac8d8963 Mon Sep 17 00:00:00 2001 From: tianj7 Date: Mon, 22 Jan 2024 10:20:11 -0600 Subject: [PATCH 02/59] only show relevant pages --- index.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.html b/index.html index 1938905f2..8588499bb 100644 --- a/index.html +++ b/index.html @@ -42,10 +42,12 @@
+ +
From 7833ba6be43543f3b4be53b553e67c971e5ee61b Mon Sep 17 00:00:00 2001 From: tianj7 Date: Tue, 23 Jan 2024 10:32:02 -0600 Subject: [PATCH 03/59] add configuration to pages shown --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 8588499bb..f3f607d44 100644 --- a/index.html +++ b/index.html @@ -42,7 +42,7 @@
- + From 0fd1bd129c31dd9c33df0cdc835a5cda9fc76842 Mon Sep 17 00:00:00 2001 From: tianj7 Date: Tue, 30 Jan 2024 11:25:19 -0600 Subject: [PATCH 04/59] remove data sources and configuration pages --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index f3f607d44..7fe9cf11f 100644 --- a/index.html +++ b/index.html @@ -42,7 +42,7 @@
- + From cfadd15164579de6d7a0b3a839ae5c41a34d3513 Mon Sep 17 00:00:00 2001 From: rkboyce Date: Sat, 2 Mar 2024 14:29:51 +0000 Subject: [PATCH 05/59] tmp: turn off uncessary initial event, criteria, and attribute options for users TODO: This should be made configurable in the future... --- .../cohortbuilder/components/CriteriaGroup.js | 190 +--------------- .../components/InitialCriteriaEditor.js | 214 +----------------- .../cohortbuilder/components/Observation.js | 103 +-------- 3 files changed, 4 insertions(+), 503 deletions(-) diff --git a/js/components/cohortbuilder/components/CriteriaGroup.js b/js/components/cohortbuilder/components/CriteriaGroup.js index f4147c942..4dd62defd 100644 --- a/js/components/cohortbuilder/components/CriteriaGroup.js +++ b/js/components/cohortbuilder/components/CriteriaGroup.js @@ -32,123 +32,7 @@ define([ self.getCriteriaComponent = utils.getCriteriaComponent; - self.addActions = [ - { - ...constants.groupAttributes.addDemographic, - selected: false, - action: function () { - self.group().DemographicCriteriaList.push(new criteriaTypes.DemographicCriteria()); - } - }, - { - ...constants.groupAttributes.addConditionEra, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - self.group().CriteriaList.push(new AdditionalCriteria({ - Criteria: { - ConditionEra: {} - } - }, unwrappedExpression.ConceptSets)); - }, - }, - { - ...constants.groupAttributes.addConditionOccurrence, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - self.group().CriteriaList.push(new AdditionalCriteria({ - Criteria: { - ConditionOccurrence: {} - } - }, unwrappedExpression.ConceptSets)); - } - }, - { - ...constants.groupAttributes.addDeath, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - self.group().CriteriaList.push(new AdditionalCriteria({ - Criteria: { - Death: {} - } - }, unwrappedExpression.ConceptSets)); - } - }, - { - ...constants.groupAttributes.addDeviceExposure, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - self.group().CriteriaList.push(new AdditionalCriteria({ - Criteria: { - DeviceExposure: {} - } - }, unwrappedExpression.ConceptSets)); - } - }, - { - ...constants.groupAttributes.addDoseEra, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - self.group().CriteriaList.push(new AdditionalCriteria({ - Criteria: { - DoseEra: {} - } - }, unwrappedExpression.ConceptSets)); - } - }, - { - ...constants.groupAttributes.addDrugEra, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - self.group().CriteriaList.push(new AdditionalCriteria({ - Criteria: { - DrugEra: {} - } - }, unwrappedExpression.ConceptSets)); - } - }, - { - ...constants.groupAttributes.addDrugExposure, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - self.group().CriteriaList.push(new AdditionalCriteria({ - Criteria: { - DrugExposure: {} - } - }, unwrappedExpression.ConceptSets)); - } - }, - { - ...constants.groupAttributes.addLocationRegion, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - self.group().CriteriaList.push(new AdditionalCriteria({ - Criteria: { - LocationRegion: {} - }, - IgnoreObservationPeriod: true, - }, unwrappedExpression.ConceptSets)); - } - }, - { - ...constants.groupAttributes.addMeasurement, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - self.group().CriteriaList.push(new AdditionalCriteria({ - Criteria: { - Measurement: {} - } - }, unwrappedExpression.ConceptSets)); - } - }, + self.addActions = [ { ...constants.groupAttributes.addObservation, selected: false, @@ -161,78 +45,6 @@ define([ }, unwrappedExpression.ConceptSets)); } }, - { - ...constants.groupAttributes.addObservationPeriod, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - self.group().CriteriaList.push(new AdditionalCriteria({ - Criteria: { - ObservationPeriod: {} - } - }, unwrappedExpression.ConceptSets)); - } - }, - { - ...constants.groupAttributes.addPayerPlanPeriod, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - self.group().CriteriaList.push(new AdditionalCriteria({ - Criteria: { - PayerPlanPeriod: {} - } - }, unwrappedExpression.ConceptSets)); - } - }, - { - ...constants.groupAttributes.addProcedureOccurrence, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - self.group().CriteriaList.push(new AdditionalCriteria({ - Criteria: { - ProcedureOccurrence: {} - } - }, unwrappedExpression.ConceptSets)); - } - }, - { - ...constants.groupAttributes.addSpecimen, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - self.group().CriteriaList.push(new AdditionalCriteria({ - Criteria: { - Specimen: {} - } - }, unwrappedExpression.ConceptSets)); - } - }, - { - ...constants.groupAttributes.addVisit, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - self.group().CriteriaList.push(new AdditionalCriteria({ - Criteria: { - VisitOccurrence: {} - } - }, unwrappedExpression.ConceptSets)); - } - }, - { - ...constants.groupAttributes.addVisitDetail, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - self.group().CriteriaList.push(new AdditionalCriteria({ - Criteria: { - VisitDetail: {} - } - }, unwrappedExpression.ConceptSets)); - } - }, { ...constants.groupAttributes.addGroup, selected: false, diff --git a/js/components/cohortbuilder/components/InitialCriteriaEditor.js b/js/components/cohortbuilder/components/InitialCriteriaEditor.js index d572acbf8..16759bad1 100644 --- a/js/components/cohortbuilder/components/InitialCriteriaEditor.js +++ b/js/components/cohortbuilder/components/InitialCriteriaEditor.js @@ -24,127 +24,7 @@ define([ self.expression = params.expression; self.buttonText = params.buttonText || ko.i18n('components.cohortExpressionEditor.addInitialEvent', 'Add Initial Event'); - self.primaryCriteriaOptions = [ - { - ...constants.initialEventList.addConditionEra, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - unwrappedExpression - .PrimaryCriteria() - .CriteriaList.push({ - ConditionEra: new criteriaTypes.ConditionEra( - null, - unwrappedExpression.ConceptSets - ), - }); - }, - }, - { - ...constants.initialEventList.addConditionOccurrence, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - unwrappedExpression - .PrimaryCriteria() - .CriteriaList.push({ - ConditionOccurrence: new criteriaTypes.ConditionOccurrence( - null, - unwrappedExpression.ConceptSets - ), - }); - }, - }, - { - ...constants.initialEventList.addDeath, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - unwrappedExpression - .PrimaryCriteria() - .CriteriaList.push({ - Death: new criteriaTypes.Death( - null, - unwrappedExpression.ConceptSets - ), - }); - }, - }, - { - ...constants.initialEventList.addDeviceExposure, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - unwrappedExpression - .PrimaryCriteria() - .CriteriaList.push({ - DeviceExposure: new criteriaTypes.DeviceExposure( - null, - unwrappedExpression.ConceptSets - ), - }); - }, - }, - { - ...constants.initialEventList.addDoseEra, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - unwrappedExpression - .PrimaryCriteria() - .CriteriaList.push({ - DoseEra: new criteriaTypes.DoseEra( - null, - unwrappedExpression.ConceptSets - ), - }); - }, - }, - { - ...constants.initialEventList.addDrugEra, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - unwrappedExpression - .PrimaryCriteria() - .CriteriaList.push({ - DrugEra: new criteriaTypes.DrugEra( - null, - unwrappedExpression.ConceptSets - ), - }); - }, - }, - { - ...constants.initialEventList.addDrugExposure, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - unwrappedExpression - .PrimaryCriteria() - .CriteriaList.push({ - DrugExposure: new criteriaTypes.DrugExposure( - null, - unwrappedExpression.ConceptSets - ), - }); - }, - }, - { - ...constants.initialEventList.addMeasurement, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - unwrappedExpression - .PrimaryCriteria() - .CriteriaList.push({ - Measurement: new criteriaTypes.Measurement( - null, - unwrappedExpression.ConceptSets - ), - }); - }, - }, + self.primaryCriteriaOptions = [ { ...constants.initialEventList.addObservation, selected: false, @@ -160,96 +40,6 @@ define([ }); }, }, - { - ...constants.initialEventList.addObservationPeriod, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - unwrappedExpression - .PrimaryCriteria() - .CriteriaList.push({ - ObservationPeriod: new criteriaTypes.ObservationPeriod( - null, - unwrappedExpression.ConceptSets - ), - }); - }, - }, - { - ...constants.initialEventList.addPayerPlanPeriod, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - unwrappedExpression - .PrimaryCriteria() - .CriteriaList.push({ - PayerPlanPeriod: new criteriaTypes.PayerPlanPeriod( - null, - unwrappedExpression.ConceptSets - ), - }); - }, - }, - { - ...constants.initialEventList.addProcedureOccurrence, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - unwrappedExpression - .PrimaryCriteria() - .CriteriaList.push({ - ProcedureOccurrence: new criteriaTypes.ProcedureOccurrence( - null, - unwrappedExpression.ConceptSets - ), - }); - }, - }, - { - ...constants.initialEventList.addSpecimen, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - unwrappedExpression - .PrimaryCriteria() - .CriteriaList.push({ - Specimen: new criteriaTypes.Specimen( - null, - unwrappedExpression.ConceptSets - ), - }); - }, - }, - { - ...constants.initialEventList.addVisit, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - unwrappedExpression - .PrimaryCriteria() - .CriteriaList.push({ - VisitOccurrence: new criteriaTypes.VisitOccurrence( - null, - unwrappedExpression.ConceptSets - ), - }); - }, - }, - { - ...constants.initialEventList.addVisitDetail, - selected: false, - action: function () { - var unwrappedExpression = ko.utils.unwrapObservable(self.expression); - unwrappedExpression - .PrimaryCriteria() - .CriteriaList.push({ - VisitDetail: new criteriaTypes.VisitDetail( - null, - unwrappedExpression.ConceptSets - ), - }); - }, - }, { ...constants.initialEventList.fromReusable, selected: false, @@ -313,4 +103,4 @@ define([ viewModel: InitialCriteriaViewModel, template: template }; -}); \ No newline at end of file +}); diff --git a/js/components/cohortbuilder/components/Observation.js b/js/components/cohortbuilder/components/Observation.js index 975b50637..d66c16e8f 100644 --- a/js/components/cohortbuilder/components/Observation.js +++ b/js/components/cohortbuilder/components/Observation.js @@ -11,64 +11,7 @@ define([ ], function (ko, options, utils, Range, DateAdjustment, Text, CriteriaGroup, template, constants) { function ObservationViewModel(params) { var self = this; - self.addActions = [ - { - ...constants.observationAttributes.addFirstDiagnosis, - selected: false, - action: function () { - if (self.Criteria.First() == null) self.Criteria.First(true); - }, - }, - { - ...constants.observationAttributes.addAge, - selected: false, - action: function () { - if (self.Criteria.Age() == null) self.Criteria.Age(new Range()); - }, - }, - { - ...constants.observationAttributes.addGender, - selected: false, - action: function () { - if (self.Criteria.Gender() == null) - self.Criteria.Gender(ko.observableArray()); - }, - }, - { - ...constants.observationAttributes.addDate, - selected: false, - action: function () { - if (self.Criteria.OccurrenceStartDate() == null) - self.Criteria.OccurrenceStartDate( - new Range({ - Op: "lt", - }) - ); - }, - }, - { - ...constants.observationAttributes.addDateAdjustment, - selected: false, - action: function () { - if (self.Criteria.DateAdjustment() == null) self.Criteria.DateAdjustment(new DateAdjustment()); - }, - }, - { - ...constants.observationAttributes.addType, - selected: false, - action: function () { - if (self.Criteria.ObservationType() == null) - self.Criteria.ObservationType(ko.observableArray()); - }, - }, - { - ...constants.observationAttributes.addVisit, - selected: false, - action: function () { - if (self.Criteria.VisitType() == null) - self.Criteria.VisitType(ko.observableArray()); - }, - }, + self.addActions = [ { ...constants.observationAttributes.addValue, selected: false, @@ -81,18 +24,6 @@ define([ ); }, }, - { - ...constants.observationAttributes.addValueAsString, - selected: false, - action: function () { - if (self.Criteria.ValueAsString() == null) - self.Criteria.ValueAsString( - new Text({ - Op: "contains", - }) - ); - }, - }, { ...constants.observationAttributes.addValueAsConcept, selected: false, @@ -101,38 +32,6 @@ define([ self.Criteria.ValueAsConcept(ko.observableArray()); }, }, - { - ...constants.observationAttributes.addQualifier, - selected: false, - action: function () { - if (self.Criteria.Qualifier() == null) - self.Criteria.Qualifier(ko.observableArray()); - }, - }, - { - ...constants.observationAttributes.addUnit, - selected: false, - action: function () { - if (self.Criteria.Unit() == null) - self.Criteria.Unit(ko.observableArray()); - }, - }, - { - ...constants.observationAttributes.addSourceConcept, - selected: false, - action: function () { - if (self.Criteria.ObservationSourceConcept() == null) - self.Criteria.ObservationSourceConcept(ko.observable()); - }, - }, - { - ...constants.observationAttributes.addProviderSpecialty, - selected: false, - action: function () { - if (self.Criteria.ProviderSpecialty() == null) - self.Criteria.ProviderSpecialty(ko.observableArray()); - }, - }, { ...constants.observationAttributes.addNested, selected: false, From 5bac724fb8c06f0d50a90dc352ac895fc3799a1c Mon Sep 17 00:00:00 2001 From: rkboyce Date: Wed, 17 Apr 2024 01:39:49 +0000 Subject: [PATCH 06/59] feat: working ability to configure global read access by granting write access to a global shared artifact reader role that would be given to all users. Next steps are to 1) make this configurable, 2) allow users to configure the global author role if they want only some users to be able to grant global read access, and 3) set up global read role for all users as a default assigned system role Other commit messages squashed in here: - first working configuration of sharing using an authoring role - some fixes to global sharing after testing; moved the shared reader role to a new roleid. - started to implement the ability to hide the share-global buttons but then decided not to - changed the 'shared artifact reader' role checked by Atlas to be the 'public' role since this would remove the need to change WebAPI to add a new system role that pretty much duplicates 'public' - added the configurable ability to restrict generation of a given cohort to only persons who have been granted permission to change the same cohort. --- .../access/configure-access-modal.html | 41 +++++++++++++++++-- .../security/access/configure-access-modal.js | 41 +++++++++++++++++-- .../cohort-definition-manager.html | 14 +++---- .../cohort-definition-manager.js | 29 ++++++++++--- js/pages/concept-sets/conceptset-manager.html | 2 +- js/pages/concept-sets/conceptset-manager.js | 26 ++++++++++-- js/services/AuthAPI.js | 14 ++++++- js/services/ShareRoleCheck.js | 32 +++++++++++++++ 8 files changed, 174 insertions(+), 25 deletions(-) create mode 100644 js/services/ShareRoleCheck.js diff --git a/js/components/security/access/configure-access-modal.html b/js/components/security/access/configure-access-modal.html index fb966053a..672339db7 100644 --- a/js/components/security/access/configure-access-modal.html +++ b/js/components/security/access/configure-access-modal.html @@ -14,13 +14,18 @@ readRoleOptions: readRoleOptions, readRoleSearch: readRoleSearch, writeRoleOptions: writeRoleOptions, - writeRoleSearch: writeRoleSearch + writeRoleSearch: writeRoleSearch, + shareFlag: shareFlag, + grantGlobalReadAccess: grantGlobalReadAccess, + revokeGlobalReadAccess: revokeGlobalReadAccess, }"> + +
- +
+ +
- +
+ + +

+ +
+ +
+
+
+
+ +

+
diff --git a/js/components/security/access/configure-access-modal.js b/js/components/security/access/configure-access-modal.js index 61efbe232..3f8a950f7 100644 --- a/js/components/security/access/configure-access-modal.js +++ b/js/components/security/access/configure-access-modal.js @@ -1,6 +1,6 @@ define([ 'knockout', - 'text!./configure-access-modal.html', + 'text!./configure-access-modal.html', 'components/Component', 'utils/CommonUtils', 'utils/AutoBind', @@ -8,7 +8,7 @@ define([ 'databindings', ], function ( ko, - view, + view, Component, commonUtils, AutoBind @@ -34,6 +34,8 @@ define([ this.readRoleSearch = ko.observable(); this.readRoleSearch.subscribe(str => this.loadReadRoleSuggestions(str)); + this.shareFlag = ko.observable(true); + this.isOwnerFn = params.isOwnerFn; this.grantAccessFn = params.grantAccessFn; this.loadAccessListFn = params.loadAccessListFn; @@ -109,7 +111,14 @@ define([ } catch (ex) { console.log(ex); } - this.isLoading(false); + this.isLoading(false); + + // update shareFlag depending on if the shared artifacts reader role is in readAccessList + function testForGlobalRead(value, index, array) { + return value.id === 1; // the 'public' role that every use should have + } + let tst = this.readAccessList().some(testForGlobalRead); + this.shareFlag(tst); } async grantAccess(perm_type) { @@ -124,7 +133,6 @@ define([ const role = this.readRoleSuggestions().find(r => r.name === this.readRoleName()); await this.grantAccessFn(role.id,'READ'); await this._loadReadAccessList(); - this.readRoleName(''); } } catch (ex) { console.log(ex); @@ -142,6 +150,31 @@ define([ } this.isLoading(false); } + + + async grantGlobalReadAccess() { + this.isLoading(true); + try { + console.log('grantGlobalReadAccess function called to grant read permissions!! shareflag: ' + this.shareFlag()); + await this.grantAccessFn('1','READ'); // 1 is the 'public' role, a SYSTEM role every user should have + await this.loadAccessList(); + } catch (ex) { + console.log(ex); + } + this.isLoading(false); + } + + async revokeGlobalReadAccess() { + this.isLoading(true); + try { + console.log('revokeGlobalReadAccess function called to REVOKE read permissions!! shareflag: ' + this.shareFlag()); + await this.revokeAccessFn('1','READ'); // 1 is the 'public' role, a SYSTEM role every user should have + await this.loadAccessList(); + } catch (ex) { + console.log(ex); + } + this.isLoading(false); + } } return commonUtils.build('configure-access-modal', ConfigureAccessModal, view); diff --git a/js/pages/cohort-definitions/cohort-definition-manager.html b/js/pages/cohort-definitions/cohort-definition-manager.html index 2665a0ca7..9ea780951 100644 --- a/js/pages/cohort-definitions/cohort-definition-manager.html +++ b/js/pages/cohort-definitions/cohort-definition-manager.html @@ -33,7 +33,7 @@ - +
- + diff --git a/js/pages/concept-sets/conceptset-manager.js b/js/pages/concept-sets/conceptset-manager.js index 7402046ed..c1ee6f61e 100644 --- a/js/pages/concept-sets/conceptset-manager.js +++ b/js/pages/concept-sets/conceptset-manager.js @@ -8,7 +8,8 @@ define([ './const', 'const', 'components/conceptset/utils', - 'services/Vocabulary', + 'services/Vocabulary', + 'services/ShareRoleCheck', 'services/Permission', 'services/Tags', 'components/security/access/const', @@ -55,7 +56,8 @@ define([ constants, globalConstants, utils, - vocabularyAPI, + vocabularyAPI, + shareRoleCheck, GlobalPermissionService, TagsService, { entityType }, @@ -174,7 +176,25 @@ define([ this.canCopy = ko.computed(() => { return this.currentConceptSet() && this.currentConceptSet().id > 0; }); - this.enablePermissionManagement = config.enablePermissionManagement; + + this.enablePermissionManagement = ko.observable(false); + this.enablePermissionManagement(config.enablePermissionManagement); + + this.userCanShare = ko.observable(false); + if (config.permissionManagementRoleId === "") { + this.userCanShare(true); + } else { + shareRoleCheck.checkIfRoleCanShare(authApi.subject(), config.permissionManagementRoleId) + .then(res=>{ + this.userCanShare(res); + }) + .catch(error => { + console.error(error); + alert(ko.i18n('conceptSets.conceptSetManager.shareRoleCheck', 'Error when determining if user can share concept sets')()); + }); + } + + this.isSaving = ko.observable(false); this.isDeleting = ko.observable(false); this.isOptimizing = ko.observable(false); diff --git a/js/services/AuthAPI.js b/js/services/AuthAPI.js index cd88bbb32..b0a28eeba 100644 --- a/js/services/AuthAPI.js +++ b/js/services/AuthAPI.js @@ -407,8 +407,18 @@ define(function(require, exports) { } var isPermittedGenerateCohort = function(cohortId, sourceKey) { - return isPermitted('cohortdefinition:' + cohortId + ':generate:' + sourceKey + ':get') && - isPermitted('cohortdefinition:' + cohortId + ':info:get'); + var v = isPermitted('cohortdefinition:' + cohortId + ':generate:' + sourceKey + ':get') && + isPermitted('cohortdefinition:' + cohortId + ':info:get'); + + // By default, everyone can generate any artifact they have + // permission to read. If a permissionManagementRoleId has + // been assigned, (non- empty string assignment), the default + // generate functionality is not desired. Rather, users will have to + // have a role that allows them to update the specific cohort definition. + if (config.permissionManagementRoleId !== ""){ + v = v && isPermitted('cohortdefinition:' + cohortId + ':put') + } + return v } var isPermittedReadCohortReport = function(cohortId, sourceKey) { diff --git a/js/services/ShareRoleCheck.js b/js/services/ShareRoleCheck.js new file mode 100644 index 000000000..eaac53a60 --- /dev/null +++ b/js/services/ShareRoleCheck.js @@ -0,0 +1,32 @@ +define(function (require, exports) { + var $ = require('jquery'); + var constants = require('const'); + const httpService = require('services/http'); + + async function getRoleUsers(subject, permissionManagementRoleId) { + return await httpService.doGet(constants.apiPaths.roleUsers(permissionManagementRoleId)) + .then(({ data = [] }) => data) + .catch((er) => { + console.error('ERROR: Can\'t find users with permissionManagementRoleId: ' + permissionManagementRoleId); + }); + }; + + async function checkIfRoleCanShare(subject, permissionManagementRoleId) { + var isAbleToShare = false; + const roleUsers = await getRoleUsers(subject, permissionManagementRoleId); + console.log("INFO: roleUsers:" + roleUsers.toString()); + + roleUsers.forEach((user) => { + console.log("INFO: user.login of user that has the permissionManagementRoleId " + permissionManagementRoleId + ": " + user.login + "; subject (currently logged in user): " + subject); + if (subject == user.login){ + isAbleToShare = true; + } + }); + console.log("INFO: isAbleToShare: " + isAbleToShare); + return isAbleToShare; + }; + + return { + checkIfRoleCanShare, + }; +}); From 34d7425bfcb28ff62e36fc0bd061ed3e6e2a7b6d Mon Sep 17 00:00:00 2001 From: pieterlukasse Date: Fri, 10 May 2024 20:30:26 +0200 Subject: [PATCH 07/59] feat: introduce a new permission instead of relying on a role for Global sharing ...and introduce some other fixes: - fix: correct styling for sharing buttons on access modal ui - fix: cleanup/remove unnecessary parts - fix: adjust permission name to "artifact:global:share:put" to better reflect its real purpose - fix: better name for isPermittedGlobalShareArtifact (previous name isPermittedGlobalShareCohort did not reflect the fact that it is about all kind of artifacts) - fix: move isOwner() check and make sure it is only applied when !config.limitedPermissionManagement - fix: move isOwner() check for conceptset-manager --- .../access/configure-access-modal.html | 5 +- .../cohort-definition-manager.html | 2 +- .../cohort-definition-manager.js | 50 ++++++++----------- js/pages/concept-sets/conceptset-manager.html | 2 +- js/pages/concept-sets/conceptset-manager.js | 48 ++++++++---------- js/services/AuthAPI.js | 29 +++++++---- js/services/ShareRoleCheck.js | 32 ------------ 7 files changed, 64 insertions(+), 104 deletions(-) delete mode 100644 js/services/ShareRoleCheck.js diff --git a/js/components/security/access/configure-access-modal.html b/js/components/security/access/configure-access-modal.html index 672339db7..b437d938f 100644 --- a/js/components/security/access/configure-access-modal.html +++ b/js/components/security/access/configure-access-modal.html @@ -92,15 +92,14 @@
-
diff --git a/js/Application.js b/js/Application.js index eb95f499d..915fc08be 100644 --- a/js/Application.js +++ b/js/Application.js @@ -96,6 +96,7 @@ define( }); this.companyInfoTemplate = config.companyInfoCustomHtmlTemplate; this.showCompanyInfo = config.showCompanyInfo; + this.isLoggedIn = ko.computed(() => authApi.isAuthenticated()); } /** From 1884d13841f3214e04211023fddd72896318cac7 Mon Sep 17 00:00:00 2001 From: Andrew Prokhorenkov Date: Thu, 1 Aug 2024 02:46:48 -0500 Subject: [PATCH 12/59] dep: some updates --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index c1d7b1082..b435fdddc 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "esprima": "4.0.1", "genversion": "2.2.0", "html-document": "0.8.1", - "requirejs": "2.3.6", + "requirejs": "2.3.7", "rimraf": "2.6.2", "terser": "5.16.4" }, @@ -65,7 +65,7 @@ "datatables.net-select": "1.6.0", "director": "1.2.8", "eonasdan-bootstrap-datetimepicker": "4.17.49", - "express": "4.18.2", + "express": "4.19.2", "facets": "0.1.1", "file-saver": "1.3.8", "hash-it": "4.1.0", @@ -80,7 +80,7 @@ "knockout-mapping": "2.6.0", "knockout-sortable": "1.2.2", "leaflet": "1.9.3", - "less": "3.8.1", + "less": "3.12.0", "lodash": "4.17.21", "lscache": "1.3.2", "lz-string": "1.4.4", From e6968e1ca0f4b18dbddfba4b9f89563e6c90af76 Mon Sep 17 00:00:00 2001 From: tianj7 Date: Tue, 1 Oct 2024 11:14:00 -0500 Subject: [PATCH 13/59] back out change after new feature is implememnted --- js/pages/cohort-definitions/cohort-definition-manager.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/js/pages/cohort-definitions/cohort-definition-manager.js b/js/pages/cohort-definitions/cohort-definition-manager.js index a11c92c68..9f69c69e2 100644 --- a/js/pages/cohort-definitions/cohort-definition-manager.js +++ b/js/pages/cohort-definitions/cohort-definition-manager.js @@ -410,11 +410,6 @@ define(['jquery', 'knockout', 'text!./cohort-definition-manager.html', (this.isAuthenticated() && this.authApi.isPermittedCopyCohort(this.currentCohortDefinition().id()) || !config.userAuthenticationEnabled); }); this.canDelete = ko.pureComputed(() => { - // tmp: temporarily disable the delete option for cohortdefinition - // until we have a final solution for storing cohortdefinitions as part - // of a workflow run. TODO - remove this once a solution is in place. - // See https://ctds-planx.atlassian.net/browse/VADC-1177 - return false; if (this.isNew()) { return false; } From eb98f654c6c51043221182de63c696790dae5168 Mon Sep 17 00:00:00 2001 From: tianj7 Date: Tue, 1 Oct 2024 11:14:37 -0500 Subject: [PATCH 14/59] back out backout change --- js/pages/cohort-definitions/cohort-definition-manager.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/js/pages/cohort-definitions/cohort-definition-manager.js b/js/pages/cohort-definitions/cohort-definition-manager.js index 9f69c69e2..a11c92c68 100644 --- a/js/pages/cohort-definitions/cohort-definition-manager.js +++ b/js/pages/cohort-definitions/cohort-definition-manager.js @@ -410,6 +410,11 @@ define(['jquery', 'knockout', 'text!./cohort-definition-manager.html', (this.isAuthenticated() && this.authApi.isPermittedCopyCohort(this.currentCohortDefinition().id()) || !config.userAuthenticationEnabled); }); this.canDelete = ko.pureComputed(() => { + // tmp: temporarily disable the delete option for cohortdefinition + // until we have a final solution for storing cohortdefinitions as part + // of a workflow run. TODO - remove this once a solution is in place. + // See https://ctds-planx.atlassian.net/browse/VADC-1177 + return false; if (this.isNew()) { return false; } From cc10984bd2ad298f290d891ceb0e38525cf77620 Mon Sep 17 00:00:00 2001 From: tianj7 Date: Tue, 1 Oct 2024 11:16:52 -0500 Subject: [PATCH 15/59] backout temp fix --- js/pages/cohort-definitions/cohort-definition-manager.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/js/pages/cohort-definitions/cohort-definition-manager.js b/js/pages/cohort-definitions/cohort-definition-manager.js index a11c92c68..9f69c69e2 100644 --- a/js/pages/cohort-definitions/cohort-definition-manager.js +++ b/js/pages/cohort-definitions/cohort-definition-manager.js @@ -410,11 +410,6 @@ define(['jquery', 'knockout', 'text!./cohort-definition-manager.html', (this.isAuthenticated() && this.authApi.isPermittedCopyCohort(this.currentCohortDefinition().id()) || !config.userAuthenticationEnabled); }); this.canDelete = ko.pureComputed(() => { - // tmp: temporarily disable the delete option for cohortdefinition - // until we have a final solution for storing cohortdefinitions as part - // of a workflow run. TODO - remove this once a solution is in place. - // See https://ctds-planx.atlassian.net/browse/VADC-1177 - return false; if (this.isNew()) { return false; } From 72b9b7ce268fc9a5489b99a97bcc6ae16a8e9704 Mon Sep 17 00:00:00 2001 From: Andrew Prokhorenkov Date: Mon, 14 Oct 2024 10:52:59 -0500 Subject: [PATCH 16/59] dep: update express to 4.20.0 for vulnerability remediation --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b435fdddc..93ce70d97 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "datatables.net-select": "1.6.0", "director": "1.2.8", "eonasdan-bootstrap-datetimepicker": "4.17.49", - "express": "4.19.2", + "express": "4.20.0", "facets": "0.1.1", "file-saver": "1.3.8", "hash-it": "4.1.0", From 425b8c75e774655adad449f3e56740522a1b1046 Mon Sep 17 00:00:00 2001 From: pieterlukasse Date: Wed, 27 Nov 2024 20:38:26 +0100 Subject: [PATCH 17/59] fix: 508 issue in language selector --- js/components/terms-and-conditions/terms-and-conditions.html | 2 +- js/components/userbar/user-bar.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/js/components/terms-and-conditions/terms-and-conditions.html b/js/components/terms-and-conditions/terms-and-conditions.html index a789642e7..fbb2c501c 100644 --- a/js/components/terms-and-conditions/terms-and-conditions.html +++ b/js/components/terms-and-conditions/terms-and-conditions.html @@ -1,7 +1,7 @@