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" diff --git a/index.html b/index.html index 1938905f2..7fe9cf11f 100644 --- a/index.html +++ b/index.html @@ -42,10 +42,12 @@
+ +
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, diff --git a/js/components/security/access/configure-access-modal.html b/js/components/security/access/configure-access-modal.html index fb966053a..b437d938f 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..294382df8 100644 --- a/js/pages/cohort-definitions/cohort-definition-manager.html +++ b/js/pages/cohort-definitions/cohort-definition-manager.html @@ -33,9 +33,9 @@ - + @@ -77,20 +77,14 @@
  • - + data-bind="visible: !previewVersion(), css: { active: $component.tabMode() == 'samples' }, click: clickSampleTab"> +
  • -
  • diff --git a/js/pages/cohort-definitions/cohort-definition-manager.js b/js/pages/cohort-definitions/cohort-definition-manager.js index 99f13fdc5..bd649dfee 100644 --- a/js/pages/cohort-definitions/cohort-definition-manager.js +++ b/js/pages/cohort-definitions/cohort-definition-manager.js @@ -99,7 +99,7 @@ define(['jquery', 'knockout', 'text!./cohort-definition-manager.html', globalConstants, constants, { entityType }, - conceptSetUtils, + conceptSetUtils, ) { const includeKeys = ["UseEventEnd"]; function pruneJSON(key, value) { @@ -198,11 +198,30 @@ define(['jquery', 'knockout', 'text!./cohort-definition-manager.html', this.pollTimeoutId = null; this.authApi = authApi; this.config = config; - this.enablePermissionManagement = config.enablePermissionManagement; this.relatedSourcecodesOptions = globalConstants.relatedSourcecodesOptions; this.commonUtils = commonUtils; this.isLoading = ko.observable(false); this.currentCohortDefinition = sharedState.CohortDefinition.current; + + PermissionService.decorateComponent(this, { + entityTypeGetter: () => entityType.COHORT_DEFINITION, + entityIdGetter: () => this.currentCohortDefinition().id(), + createdByUsernameGetter: () => this.currentCohortDefinition() && this.currentCohortDefinition().createdBy() + && this.currentCohortDefinition().createdBy().login + }); + + this.enablePermissionManagement = ko.observable(config.enablePermissionManagement); + if (config.enablePermissionManagement) { + this.userCanShare = ko.observable( + (config.limitedPermissionManagement && + authApi.isPermittedGlobalShareArtifact()) || + (!config.limitedPermissionManagement && + this.isOwner()) + ); + } else { + this.userCanShare = ko.observable(false); + } + this.currentCohortDefinitionMode = sharedState.CohortDefinition.mode; this.currentCohortDefinitionInfo = sharedState.CohortDefinition.info; this.cohortDefinitionSourceInfo = sharedState.CohortDefinition.sourceInfo; @@ -388,7 +407,7 @@ define(['jquery', 'knockout', 'text!./cohort-definition-manager.html', }); this.canCopy = ko.pureComputed(() => { return !this.dirtyFlag().isDirty() && !this.isNew() && - (this.isAuthenticated() && this.authApi.isPermittedCopyCohort(this.currentCohortDefinition().id()) || !config.userAuthenticationEnabled); + (this.isAuthenticated() && this.authApi.isPermittedReadCohort(this.currentCohortDefinition().id()) || !config.userAuthenticationEnabled); }); this.canDelete = ko.pureComputed(() => { if (this.isNew()) { @@ -849,12 +868,6 @@ define(['jquery', 'knockout', 'text!./cohort-definition-manager.html', } - PermissionService.decorateComponent(this, { - entityTypeGetter: () => entityType.COHORT_DEFINITION, - entityIdGetter: () => this.currentCohortDefinition().id(), - createdByUsernameGetter: () => this.currentCohortDefinition() && this.currentCohortDefinition().createdBy() - && this.currentCohortDefinition().createdBy().login - }); TagsService.decorateComponent(this, { assetTypeGetter: () => TagsService.ASSET_TYPE.COHORT_DEFINITION, @@ -914,7 +927,7 @@ define(['jquery', 'knockout', 'text!./cohort-definition-manager.html', } // METHODS - + startPolling(cd, source) { this.pollId = PollService.add({ callback: () => this.queryHeraclesJob(cd, source), diff --git a/js/pages/concept-sets/conceptset-manager.html b/js/pages/concept-sets/conceptset-manager.html index a1643e25a..bc93102e5 100644 --- a/js/pages/concept-sets/conceptset-manager.html +++ b/js/pages/concept-sets/conceptset-manager.html @@ -27,8 +27,8 @@ - - diff --git a/js/pages/concept-sets/conceptset-manager.js b/js/pages/concept-sets/conceptset-manager.js index 7402046ed..eee93a131 100644 --- a/js/pages/concept-sets/conceptset-manager.js +++ b/js/pages/concept-sets/conceptset-manager.js @@ -174,7 +174,26 @@ define([ this.canCopy = ko.computed(() => { return this.currentConceptSet() && this.currentConceptSet().id > 0; }); - this.enablePermissionManagement = config.enablePermissionManagement; + + GlobalPermissionService.decorateComponent(this, { + entityTypeGetter: () => entityType.CONCEPT_SET, + entityIdGetter: () => this.currentConceptSet() && this.currentConceptSet().id, + createdByUsernameGetter: () => this.currentConceptSet() && this.currentConceptSet().createdBy + && this.currentConceptSet().createdBy.login + }); + + this.enablePermissionManagement = ko.observable(config.enablePermissionManagement); + if (config.enablePermissionManagement) { + this.userCanShare = ko.observable( + (config.limitedPermissionManagement && + authApi.isPermittedGlobalShareArtifact()) || + (!config.limitedPermissionManagement && + this.isOwner()) + ); + } else { + this.userCanShare = ko.observable(false); + } + this.isSaving = ko.observable(false); this.isDeleting = ko.observable(false); this.isOptimizing = ko.observable(false); @@ -332,13 +351,6 @@ define([ this.activeUtility = ko.observable(""); - GlobalPermissionService.decorateComponent(this, { - entityTypeGetter: () => entityType.CONCEPT_SET, - entityIdGetter: () => this.currentConceptSet() && this.currentConceptSet().id, - createdByUsernameGetter: () => this.currentConceptSet() && this.currentConceptSet().createdBy - && this.currentConceptSet().createdBy.login - }); - this.tags = ko.observableArray(this.currentConceptSet() && this.currentConceptSet().tags); TagsService.decorateComponent(this, { assetTypeGetter: () => TagsService.ASSET_TYPE.CONCEPT_SET, diff --git a/js/services/AuthAPI.js b/js/services/AuthAPI.js index cd88bbb32..312ac890f 100644 --- a/js/services/AuthAPI.js +++ b/js/services/AuthAPI.js @@ -395,6 +395,12 @@ define(function(require, exports) { return isPermitted('cohortdefinition:' + id + ':copy:get'); } + var isPermittedGlobalShareArtifact = function() { + // special * permission (intended for admins) that allows the + // user to share any artifact with a "global reader role": + return isPermitted('artifact:global:share:put'); + } + var isPermittedUpdateCohort = function(id) { var permission = 'cohortdefinition:' + id + ':put'; return isPermitted(permission); @@ -407,8 +413,18 @@ define(function(require, exports) { } var isPermittedGenerateCohort = function(cohortId, sourceKey) { - return isPermitted('cohortdefinition:' + cohortId + ':generate:' + sourceKey + ':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 limitedPermissionManagement has + // been set to true, the default + // generate functionality is not desired. Rather, users will have to + // have a permission that allows them to update the specific cohort definition. + if (config.limitedPermissionManagement){ + v = v && isPermitted('cohortdefinition:' + cohortId + ':put') + } + return v } var isPermittedReadCohortReport = function(cohortId, sourceKey) { @@ -576,6 +592,7 @@ define(function(require, exports) { isPermittedReadCohort: isPermittedReadCohort, isPermittedCreateCohort: isPermittedCreateCohort, isPermittedCopyCohort: isPermittedCopyCohort, + isPermittedGlobalShareArtifact: isPermittedGlobalShareArtifact, isPermittedUpdateCohort: isPermittedUpdateCohort, isPermittedDeleteCohort: isPermittedDeleteCohort, isPermittedGenerateCohort: isPermittedGenerateCohort,