From 320f8c446b6a4b1ad83e86a27813b62bb665da15 Mon Sep 17 00:00:00 2001 From: Andrew Prokhorenkov Date: Fri, 29 Jul 2022 20:49:06 -0500 Subject: [PATCH 1/9] 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 7a606e82a..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.23.3-alpine@sha256:c748ba587e7436aaa8729b64d4e0412410a486f0c592f0eec100fb3804ff9afd +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 a89503c90dbe05a5fc9ba3ccc35990d5fb99972a Mon Sep 17 00:00:00 2001 From: tianj7 Date: Mon, 22 Jan 2024 10:20:11 -0600 Subject: [PATCH 2/9] 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 cfad9da38c59545405cf5944ebc33bd84749ac97 Mon Sep 17 00:00:00 2001 From: tianj7 Date: Tue, 23 Jan 2024 10:32:02 -0600 Subject: [PATCH 3/9] 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 2ae5dfcbb8a8edaac41242e5391015331980877e Mon Sep 17 00:00:00 2001 From: tianj7 Date: Tue, 30 Jan 2024 11:25:19 -0600 Subject: [PATCH 4/9] 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 c37e77dfa2078d7e16f53e395aa07967c0770ec9 Mon Sep 17 00:00:00 2001 From: rkboyce Date: Sat, 2 Mar 2024 14:29:51 +0000 Subject: [PATCH 5/9] 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 87dcd9277d15a752447b70f99e1ac3ed19d04e41 Mon Sep 17 00:00:00 2001 From: rkboyce Date: Wed, 17 Apr 2024 01:39:49 +0000 Subject: [PATCH 6/9] 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 5cebc2516a9de754652ca86ed8fb0b072beae3bd Mon Sep 17 00:00:00 2001 From: pieterlukasse Date: Fri, 10 May 2024 20:30:26 +0200 Subject: [PATCH 7/9] 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 @@
-