diff --git a/Deps/Bindaas/Dockerfile b/Deps/Bindaas/Dockerfile deleted file mode 100644 index f8b93918..00000000 --- a/Deps/Bindaas/Dockerfile +++ /dev/null @@ -1,34 +0,0 @@ -FROM alpine:3.9 -LABEL maintainer="ashish@dbmi.emory.edu" - -### update and include Shadow to manage users and groups -RUN apk update -RUN apk --no-cache add wget -RUN apk --no-cache add shadow - -# Add group Bindaas and user Bindaas -RUN groupadd -g 9999 bindaas && \ - useradd -r -u 9999 -g bindaas bindaas - -WORKDIR /root/src - -RUN apk --no-cache add openjdk8-jre -WORKDIR /root/bindaas/ -RUN wget https://github.com/sharmalab/bindaas/releases/download/v3.3.8/bindaas-dist-3.3.8.tar.gz -RUN tar -xvf bindaas-dist-3.3.8.tar.gz && rm bindaas-dist-3.3.8.tar.gz -COPY bindaas.config.json /root/bindaas/bin/ -COPY run.sh /root/bindaas/bin/ - -# Add java to path -ENV PATH /root/src/jre1.8.0_171/bin:$PATH - -RUN chown -R bindaas:bindaas /root/ - -WORKDIR /root/bindaas/bin - -USER bindaas - -EXPOSE 9099 -EXPOSE 8080 - -CMD ["sh", "run.sh"] diff --git a/Deps/Bindaas/bindaas.config.json b/Deps/Bindaas/bindaas.config.json deleted file mode 100644 index 665dc086..00000000 --- a/Deps/Bindaas/bindaas.config.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "host": "0.0.0.0", - "port": 9099, - "protocol": "http", - "enableAuthentication": false, - "enableAuthorization": false, - "enableAudit": true, - "authenticationProviderClass": "edu.emory.cci.bindaas.security.impl.DBAuthenticationProvider", - "authorizationProviderClass": "edu.emory.cci.bindaas.security_dashboard.service.AuthorizationProviderImpl", - "auditProviderClass": "edu.emory.cci.bindaas.security.impl.DBAuditProvider", - "proxyUrl": "http://localhost:9099", - "instanceName": "bindaas" -} diff --git a/Deps/Bindaas/run.sh b/Deps/Bindaas/run.sh deleted file mode 100644 index ed8ba61a..00000000 --- a/Deps/Bindaas/run.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -java -jar -Dpid=BINDAAS_INSTANCE org.eclipse.osgi_3.10.100.v20150529-1857.jar - -while true; do sleep 1000; done diff --git a/Deps/auth_service/.gitignore b/Deps/auth_service/.gitignore deleted file mode 100644 index c2658d7d..00000000 --- a/Deps/auth_service/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ diff --git a/Deps/auth_service/Dockerfile b/Deps/auth_service/Dockerfile deleted file mode 100644 index d4fabe64..00000000 --- a/Deps/auth_service/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM node:8-alpine -RUN mkdir /root/src -COPY . /root/src -WORKDIR /root/src - -RUN npm config set unsafe-perm true -RUN npm install -RUN npm install -g forever -EXPOSE 8010 -CMD forever app.js diff --git a/Deps/auth_service/about.md b/Deps/auth_service/about.md deleted file mode 100644 index a0048a05..00000000 --- a/Deps/auth_service/about.md +++ /dev/null @@ -1 +0,0 @@ -This is a pre-pathdb service to answer auth questions. diff --git a/Deps/auth_service/app.js b/Deps/auth_service/app.js deleted file mode 100644 index c733e8c2..00000000 --- a/Deps/auth_service/app.js +++ /dev/null @@ -1,165 +0,0 @@ -const express = require('express') -const rp = require('request-promise'); -const app = express(); -const fs = require("fs"); -var atob = require('atob'); -var jwt = require('jsonwebtoken'); -var jwkToPem = require('jwk-to-pem'); -var cookieParser = require('cookie-parser'); -const jwksClient = require('jwks-rsa'); -var PORT = process.env.PORT || 8010 -var BASE_USER_URL = "http://ca-data:9099/services/caMicroscope/Authorization/query/getAuth?name=" -var SECRET = process.env.SECRET -var EXPIRY = process.env.EXPIRY || "1d" -var JWK_URL = process.env.JWKS -var KEY_FIELD = process.env.KEY_FIELD || "accessCollection" -var AUD = process.env.AUD || false -var ISS = process.env.ISS || false - -var jwks_client = false -console.log(JWK_URL) -if (JWK_URL){ - jwks_client = jwksClient({ - jwksUri: JWK_URL -}); -} - -// get cookies -app.use(cookieParser()) - -try { - let prikey_path = "/keys/key" - if(fs.existsSync(prikey_path)){ - var PRIKEY = fs.readFileSync(prikey_path, 'utf8') - } -} catch (err){ - console.error(err) -} - -try { - let pubkey_path = "/keys/key.pub" - if(fs.existsSync(pubkey_path)){ - var PUBKEY = fs.readFileSync(pubkey_path, 'utf8') - } -} catch (err){ - console.error(err) -} - -try { - let cert_path = "/keys/certificate" - if(fs.existsSync(cert_path)){ - var SECRET = fs.readFileSync(cert_path, 'utf8') - } -} catch (err){ - console.error(err) -} -// jwks -try { - let jwk_path = "/keys/jwk.json" - if(fs.existsSync(jwk_path)){ - var SECRET = jwkToPem(JSON.parse(fs.readFileSync(jwk_path, 'utf8'))) - } -} catch (err){ - console.error(err) -} - -const getToken = function(req) { - if (req.headers.authorization && req.headers.authorization.split(' ')[0] === 'Bearer') { // Authorization: Bearer g1jipjgi1ifjioj - // Handle token presented as a Bearer token in the Authorization header - return req.headers.authorization.split(' ')[1]; - } else if (req.query && req.query.token) { - // Handle token presented as URI param - return req.query.token; - } else if (req.cookies && req.cookies.token) { - // Handle token presented as a cookie parameter - return req.cookies.token; - } -} - -function getJwtKid(token) { - var base64Url = token.split('.')[0]; - var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); - var jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) { - return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); - }).join('')); - - return JSON.parse(jsonPayload).kid; -}; - -function jwk_token_trade(check_key, sign_key){ - return function(req,res){ - var THISTOKEN = getToken(req) - if(!jwks_client){ - console.log("something wrong...") - token_trade(check_key, sign_key)(req,res) - } - jwks_client.getSigningKey(getJwtKid(THISTOKEN), (err,key)=>{ - console.log(key) - let use_key = key.publicKey || key.rsaPublicKey - if(err){ - res.status(401).send(err) - } else { - token_trade(use_key, sign_key)(req,res) - } - }) - } -} - - -// curry these calls -function token_trade(check_key, sign_key){ - return function(req,res){ - var THISTOKEN = getToken(req) - let jwt_options = {} - if (AUD){ - jwt_options.audience = AUD - } - if (ISS){ - jwt_options.issuer = ISS - } - jwt.verify(THISTOKEN, check_key, jwt_options, function(err, token){ - if (err){ - res.status(401).send(err) - } else { - if (!(token && (token.email || token.sub))){ - // jwt doesn't say who you are, so bye - res.send(401).send({err:"email and sub are unset from source token"}) - } else { - var name = token.email || token.sub - user_detail = rp({ - uri: BASE_USER_URL + name, - json: true - }) - user_detail.then(x=>{ - console.log(x) - if (x.length >= 1 && x[0].hasOwnProperty('name')){ - let attrs = x[0].attrs || [] - data = { - 'sub':name, - 'name':x[0].name, - 'attrs':attrs, - } - data[KEY_FIELD] = x[0][KEY_FIELD] || [] - // sign using the mounted key - var token = jwt.sign(data, sign_key, {algorithm:"RS256", expiresIn: EXPIRY}) - res.send({'token':token}) - } else { - res.status(401).send({"err":"User Unauthorized"}) - } - }) - user_detail.catch(e=>{ - console.log(e) - res.status(401).send(e) - }) - } - } - }) - } -} - -// convert or "check" a token -app.get("/check", jwk_token_trade(SECRET, PRIKEY)) -// renew a token -app.get("/renew", token_trade(PUBKEY, PRIKEY)) - -app.listen(PORT, () => console.log('listening on ' + PORT)) diff --git a/Deps/auth_service/package-lock.json b/Deps/auth_service/package-lock.json deleted file mode 100644 index a6858630..00000000 --- a/Deps/auth_service/package-lock.json +++ /dev/null @@ -1,1063 +0,0 @@ -{ - "name": "auth_service", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@types/body-parser": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.0.tgz", - "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.32", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz", - "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", - "requires": { - "@types/node": "*" - } - }, - "@types/express": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.0.tgz", - "integrity": "sha512-CjaMu57cjgjuZbh9DpkloeGxV45CnMGlVd+XpG7Gm9QgVrd7KFq+X4HY0vM+2v0bczS48Wg7bvnMY5TN+Xmcfw==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "*", - "@types/serve-static": "*" - } - }, - "@types/express-jwt": { - "version": "0.0.42", - "resolved": "https://registry.npmjs.org/@types/express-jwt/-/express-jwt-0.0.42.tgz", - "integrity": "sha512-WszgUddvM1t5dPpJ3LhWNH8kfNN8GPIBrAGxgIYXVCEGx6Bx4A036aAuf/r5WH9DIEdlmp7gHOYvSM6U87B0ag==", - "requires": { - "@types/express": "*", - "@types/express-unless": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.16.7", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.7.tgz", - "integrity": "sha512-847KvL8Q1y3TtFLRTXcVakErLJQgdpFSaq+k043xefz9raEf0C7HalpSY7OW5PyjCnY8P7bPW5t/Co9qqp+USg==", - "requires": { - "@types/node": "*", - "@types/range-parser": "*" - } - }, - "@types/express-unless": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@types/express-unless/-/express-unless-0.5.1.tgz", - "integrity": "sha512-5fuvg7C69lemNgl0+v+CUxDYWVPSfXHhJPst4yTLcqi4zKJpORCxnDrnnilk3k0DTq/WrAUdvXFs01+vUqUZHw==", - "requires": { - "@types/express": "*" - } - }, - "@types/mime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz", - "integrity": "sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==" - }, - "@types/node": { - "version": "12.7.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.1.tgz", - "integrity": "sha512-aK9jxMypeSrhiYofWWBf/T7O+KwaiAHzM4sveCdWPn71lzUSMimRnKzhXDKfKwV1kWoBo2P1aGgaIYGLf9/ljw==" - }, - "@types/range-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", - "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" - }, - "@types/serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", - "requires": { - "@types/express-serve-static-core": "*", - "@types/mime": "*" - } - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - }, - "cookie-parser": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.4.tgz", - "integrity": "sha512-lo13tqF3JEtFO7FyA49CqbhaFkskRJ0u/UAiINgrIXeRCY41c88/zxtrECl8AKH3B0hj9q10+h3Kt8I7KlW4tw==", - "requires": { - "cookie": "0.3.1", - "cookie-signature": "1.0.6" - } - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - } - } - }, - "express-promise": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/express-promise/-/express-promise-0.4.0.tgz", - "integrity": "sha1-BDw8t3iND/KZsGUG30RXIv360eQ=" - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jwk-to-pem": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/jwk-to-pem/-/jwk-to-pem-2.0.1.tgz", - "integrity": "sha512-KKu0WuDDjqw2FlRFp9/vk9TMO/KvgpZVKzdhhYcNyy5OwE8dw9lOK5OQTQHIJ7m+HioI/4P44sAtVuDrQ8KQfw==", - "requires": { - "asn1.js": "^4.5.2", - "elliptic": "^6.2.3", - "safe-buffer": "^5.0.1" - } - }, - "jwks-rsa": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-1.6.0.tgz", - "integrity": "sha512-gLhpd7Ka7Jy8ofm9OVj0PFPtSdx3+W2dncF3UCA1wDTAbvfiB1GhHbbyQlz8bqLF5+rge7pgD/DALRfgZi8Fgg==", - "requires": { - "@types/express-jwt": "0.0.42", - "debug": "^2.6.9", - "jsonwebtoken": "^8.5.1", - "limiter": "^1.1.4", - "lru-memoizer": "^1.12.0", - "ms": "^2.1.1", - "request": "^2.88.0" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "limiter": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.4.tgz", - "integrity": "sha512-XCpr5bElgDI65vVgstP8TWjv6/QKWm9GU5UG0Pr5sLQ3QLo8NVKsioe+Jed5/3vFOe3IQuqE7DKwTvKQkjTHvg==" - }, - "lock": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/lock/-/lock-0.1.4.tgz", - "integrity": "sha1-/sfervF+fDoKVeHaBCgD4l2RdF0=" - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "lru-cache": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", - "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=", - "requires": { - "pseudomap": "^1.0.1", - "yallist": "^2.0.0" - } - }, - "lru-memoizer": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-1.13.0.tgz", - "integrity": "sha512-q0wMolfI7yimhZ36kBAfMLOIuDBpRkieN9do0YPjSzCaiy6r73s8wOEq7Ue/B95VSRbXzfnOr1O1QdJc5UIqaw==", - "requires": { - "lock": "~0.1.2", - "lodash": "^4.17.4", - "lru-cache": "~4.0.0", - "very-fast-args": "^1.1.0" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz", - "integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - } - } - }, - "request-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.4.tgz", - "integrity": "sha512-8wgMrvE546PzbR5WbYxUQogUnUDfM0S7QIFZMID+J73vdFARkFy+HElj4T+MWYhpXwlLp0EQ8Zoj8xUA0he4Vg==", - "requires": { - "bluebird": "^3.5.0", - "request-promise-core": "1.1.2", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, - "request-promise-core": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", - "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", - "requires": { - "lodash": "^4.17.11" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "very-fast-args": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/very-fast-args/-/very-fast-args-1.1.0.tgz", - "integrity": "sha1-4W0dH6+KbllqJGQh/ZCneWPQs5Y=" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } - } -} diff --git a/Deps/auth_service/package.json b/Deps/auth_service/package.json deleted file mode 100644 index 61b6d79f..00000000 --- a/Deps/auth_service/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "auth_service", - "version": "1.0.0", - "description": "", - "main": "app.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "birm", - "license": "UNLICENSED", - "dependencies": { - "atob": "^2.1.2", - "cookie-parser": "^1.4.4", - "express": "^4.16.4", - "express-promise": "^0.4.0", - "jsonwebtoken": "^8.4.0", - "jwk-to-pem": "^2.0.1", - "jwks-rsa": "^1.6.0", - "request": "^2.88.0", - "request-promise": "^4.2.4" - } -} diff --git a/Deps/auth_service/readme.md b/Deps/auth_service/readme.md deleted file mode 100644 index 111be3a9..00000000 --- a/Deps/auth_service/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# Auth Service for Elevate - - -Uses bindaas endpoint to determine users and their permissions. - -Set SECRET to the jwt secret, or use /keys/certificate with a certificate, or /keys/jwk.json with a jwk. - -Use EXPIRY to set a token expiration other than the default one hour. - -This tool needs key and key.pub mounted to /keys to sign JWTs to elevate. In this distribution, run jwt_keys/make_keys.sh to do so. diff --git a/README.md b/README.md index 6dfef799..3b5261e9 100644 --- a/README.md +++ b/README.md @@ -22,26 +22,38 @@ mongo - vanilla mongo container idxMongo - ephemeral container to index mongo (that is, this container is *expected* to exit once it's done its job) -bindaas - api service for mongo (see https://github.com/sharmalab/bindaas) - iip - slide tile server (see https://github.com/camicroscope/iipImage) -viewer - hosts the viewer files and builds packages ( see https://github.com/camicroscope/caMicroscope) - loader - extracts metadata needed for image loading (see https://github.com/camicroscope/SlideLoader) -security - security proxy (see https://github.com/camicroscope/Security) +back - security, data, and routing (see https://github.com/camicroscope/caracal) + +back/viewer - within back, viewer files ( see https://github.com/camicroscope/caMicroscope) ## Configuration Logging - Container Logging is, for HIPAA reasons, disabled. Feel free to use a different logging engine if desired, especially for development. -Security and Routes - This is handled by the security container. By default routes go the viewer, unless a specific pattern in routes.json is matched. If security is enabled, supply the SECRET (pub key or secret of JWT) for verification, otherwise set DISABLE_SEC to true. +See backend and security config notes (here)[https://github.com/camicroscope/caracal] Image Volume - This is, by default, the images directory in this directory. If this is changed, please make the same change across all impacted services. +## Securing caMicroscope + +### Getting an Identity Provider and Setting up Login + +When selecting, an identity provider, note that we expect it to provide a JWT, and to have a certificate/public key/secret which can be used to verify such JWTs. + +The example given in the Distro within config/login.html is set up to use google as an identity provider. See [this guide from google](https://developers.google.com/identity/sign-in/web/sign-in) to set up your own project, which is necessary to enable login on your instance. + +### Adding Users to Database + +Add users as in ./config/add\_mongo\_users.js. Attributes can be added to deny access to routes (e.g. allow only some users to post and delete) + +The email field is the email field (or failing that, sub field) in that priority from the identity provider. + ## PathDB -To use PathDB, use quip-pathdb.yml instead of caMicroscope.yml. This deployment does not include the auth and loader as separate services, as this PathDB provides that functionality. +To use PathDB, use quip-pathdb.yml instead of caMicroscope.yml. Running QuIP with PathDB (https://github.com/SBU-BMI/PathDB): diff --git a/auth0_login.html b/auth0_login.html deleted file mode 100644 index 6015938c..00000000 --- a/auth0_login.html +++ /dev/null @@ -1,59 +0,0 @@ - -

Redirecting...

- - diff --git a/caMicroscope.yml b/caMicroscope.yml index e3ebd906..a55340e0 100644 --- a/caMicroscope.yml +++ b/caMicroscope.yml @@ -4,11 +4,10 @@ services: mongo: image: mongo:3.4.19-jessie container_name: ca-mongo - restart: unless-stopped - volumes: - - ./db:/data/db logging: driver: none + volumes: + - ./db:/data/db idxMongo: image: mongo:3.4.19-jessie container_name: ca-idx @@ -22,57 +21,31 @@ services: - /config/run_idx.sh depends_on: - mongo - bindaas: - build: "./Deps/Bindaas/" + back: + build: + context: "https://github.com/camicroscope/caracal.git#v3.7.0" + args: + viewer: "v3.7.0" depends_on: - "mongo" - container_name: ca-data - restart: unless-stopped - logging: - driver: none + ports: + - "4010:4010" + container_name: ca-back volumes: - - ./config/bindaas_projects/:/root/bindaas/bin/projects/ - - ./config/bindaas.config.json:/root/bindaas/bin/bindaas.config.json + - ./config/login.html:/root/src/static/login.html + - ./jwt_keys/:/root/src/keys/ + environment: + JWK_URL: "https://www.googleapis.com/oauth2/v3/certs" + IIP_PATH: "http://ca-iip/fcgi-bin/iipsrv.fcgi" + MONGO_URI: "mongodb://ca-mongo" iip: - build: "https://github.com/caMicroscope/iipImage.git#v3.2.0" + image: camicroscope/iipimage:latest container_name: ca-iip restart: unless-stopped volumes: - ./images/:/images/ - viewer: - build: "https://github.com/caMicroscope/caMicroscope.git#v3.6.2" - container_name: ca-front - restart: unless-stopped - volumes: - - ./config/login.html:/usr/local/apache2/htdocs/login.html - logging: - driver: none loader: - build: "https://github.com/caMicroscope/SlideLoader.git#v3.6.2" + build: "https://github.com/camicroscope/SlideLoader.git#v3.7.0" container_name: ca-load - restart: unless-stopped - logging: - driver: none volumes: - ./images/:/images/ - security: - build: "https://github.com/caMicroscope/Security.git#v3.6.2" - container_name: ca-security - restart: unless-stopped - ports: - - "4010:4010" - volumes: - - ./config/non-pathdb-routes.json:/root/src/routes.json - - ./jwt_keys/:/keys/ - environment: - - DISABLE_SEC=true - auth: - build: "./Deps/auth_service/" - volumes: - - ./jwt_keys/:/keys/ - container_name: ca-auth - environment: - JWKS: "https://www.googleapis.com/oauth2/v3/certs" - restart: unless-stopped - logging: - driver: none diff --git a/config/add_mongo_users.js b/config/add_mongo_users.js deleted file mode 100644 index f0cfbfa8..00000000 --- a/config/add_mongo_users.js +++ /dev/null @@ -1,28 +0,0 @@ -// these roles are customizable, and should match the routes.json attrs - -// lists -let admin_list = ["admin@camicroscope.org"]; -let editor_list = ["editor@camicroscope.org"]; -let viewer_list = ["viewer@camicroscope.org"]; -// admin users -let admin_attrs = ['admin', 'write'] -// edit users -let editor_attrs = ['write'] -// normal users -let viewer_attrs = [] -// prep for mongo -var users = [] - -admin_list.forEach(x=>{ - users.push({name:x, attrs: admin_attrs}) -}) - -editor_list.forEach(x=>{ - users.push({name:x, attrs: editor_attrs}) -}) - -viewer_list.forEach(x=>{ - users.push({name:x, attrs: viewer_attrs}) -}) - -db.authorization.insertMany(users) diff --git a/config/add_users.js b/config/add_users.js new file mode 100644 index 00000000..d701571f --- /dev/null +++ b/config/add_users.js @@ -0,0 +1,7 @@ +// For use with caracal, this is really just a demo. + +let admin = {'email':'viewer@camicroscope.org', 'userFilter':["Public"], 'userType':'Null'} +// users not added would have been represented by the below +let randomPerson = {'email':'randomperson@camicroscope.org', 'userFilter':["Public"], 'userType':'Null'} +users = [admin, randomPerson] +db.user.insertMany(users) diff --git a/config/bindaas.config.json b/config/bindaas.config.json deleted file mode 100644 index 665dc086..00000000 --- a/config/bindaas.config.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "host": "0.0.0.0", - "port": 9099, - "protocol": "http", - "enableAuthentication": false, - "enableAuthorization": false, - "enableAudit": true, - "authenticationProviderClass": "edu.emory.cci.bindaas.security.impl.DBAuthenticationProvider", - "authorizationProviderClass": "edu.emory.cci.bindaas.security_dashboard.service.AuthorizationProviderImpl", - "auditProviderClass": "edu.emory.cci.bindaas.security.impl.DBAuditProvider", - "proxyUrl": "http://localhost:9099", - "instanceName": "bindaas" -} diff --git a/config/bindaas_projects/caMicroscope.project b/config/bindaas_projects/caMicroscope.project deleted file mode 100644 index d957e136..00000000 --- a/config/bindaas_projects/caMicroscope.project +++ /dev/null @@ -1,1431 +0,0 @@ -{ - "profiles": { - "Mark": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic", - "collection": "mark", - "initialize": true - }, - "queryEndpoints": { - "get": { - "queryTemplate": "{\n\t\"_operation\" : \"find\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}} ,\n\t\t\t\t\t\t\t\"limit\" : 1\n\t\t\t\t\t\t}\n}\n ", - "metaData": {}, - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "get", - "timeCreated": "Wed Aug 29 18:40:50 UTC 2018", - "createdBy": "admin", - "description": " " - }, - "findTypesExec": { - "queryTemplate": "{ \"_operation\" : \"distinct\" , \"_operation_args\" : { \"field\" : \"provenance.analysis\", \"query\" : {\u0027provenance.image.slide\u0027: \"$slide$\",\u0027provenance.analysis.execution_id\u0027: $name$ } } } ", - "metaData": {}, - "tags": [], - "bindVariables": { - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "name": { - "name": "name", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "findTypesExec", - "timeCreated": "Thu May 09 15:09:53 GMT 2019", - "createdBy": "admin", - "description": " " - }, - "multiFind": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" :{$and: [\n{\"provenance.analysis.execution_id\": {$in: $name$},\n \"provenance.image.slide\" : \"$slide$\",\n \"footprint\": { $not: {$lt: $footprint$}},\n \"provenance.analysis.source\" : {$regex: \"$source$\", $options: \"i\"}},\n{\"x\": { $not: {$lt: $x0$}}},\n{\"x\": { $not: {$gt: $x1$}}},\n{\"y\": { $not: {$lt: $y0$}}},\n{\"y\": { $not: {$gt: $y1$}}}\n ]}\n}\n}\n ", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": true, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": false, - "defaultValue": "", - "description": "" - }, - "footprint": { - "name": "footprint", - "required": false, - "defaultValue": "0", - "description": "" - }, - "source": { - "name": "source", - "required": false, - "defaultValue": "", - "description": "" - }, - "x0": { - "name": "x0", - "required": false, - "defaultValue": "0", - "description": "" - }, - "x1": { - "name": "x1", - "required": false, - "defaultValue": "9", - "description": "" - }, - "y0": { - "name": "y0", - "required": false, - "defaultValue": "0", - "description": "" - }, - "y1": { - "name": "y1", - "required": false, - "defaultValue": "9", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "multiFind", - "timeCreated": "Tue Jul 02 17:47:09 GMT 2019", - "createdBy": "admin", - "description": " " - }, - "find": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" :{$and: [\n{\"provenance.analysis.execution_id\" : {$regex: \"$name$\", $options: \"i\"},\n \"provenance.image.slide\" : \"$slide$\",\n \"footprint\": { $not: {$lt: $footprint$}},\n \"provenance.analysis.source\" : {$regex: \"$source$\", $options: \"i\"}},\n{\"x\": { $not: {$lt: $x0$}}},\n{\"x\": { $not: {$gt: $x1$}}},\n{\"y\": { $not: {$lt: $y0$}}},\n{\"y\": { $not: {$gt: $y1$}}}\n ]}\n}\n}\n ", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": false, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": false, - "defaultValue": "", - "description": "" - }, - "source": { - "name": "source", - "required": false, - "defaultValue": "", - "description": "" - }, - "footprint": { - "name": "footprint", - "required": false, - "defaultValue": "0", - "description": "" - }, - "x0": { - "name": "x0", - "required": false, - "defaultValue": "0", - "description": "" - }, - "x1": { - "name": "x1", - "required": false, - "defaultValue": "9", - "description": "" - }, - "y0": { - "name": "y0", - "required": false, - "defaultValue": "0", - "description": "" - }, - "y1": { - "name": "y1", - "required": false, - "defaultValue": "9", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "find", - "timeCreated": "Tue Jul 02 17:48:26 GMT 2019", - "createdBy": "admin", - "description": " " - }, - "findBound": { - "queryTemplate": "{ \"_operation\" : \"find\" , \"_operation_args\" : { \"query\" : {\"provenance.analysis.execution_id\" : {$regex: \"$name$\", $options: \"i\"},\n \"provenance.image.slide\" : \"$slide$\",\n \"provenance.analysis.source\" : {$regex: \"$key$\", $options: \"i\"}, \"geometries.features.bound\": { $geoIntersects: { $geometry: { \"type\": \"Polygon\", \"coordinates\": [[[ $x0$, $y0$ ],[ $x0$, $y1$ ],[ $x1$, $y1$ ],[ $x1$, $y0$ ],[ $x0$, $y0$ ]]] } } } }, \"limit\" : 1000} } ", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": false, - "defaultValue": "", - "description": "" - }, - "key": { - "name": "key", - "required": false, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": false, - "defaultValue": "", - "description": "" - }, - "x0": { - "name": "x0", - "required": true, - "defaultValue": "", - "description": "" - }, - "y0": { - "name": "y0", - "required": true, - "defaultValue": "", - "description": "" - }, - "x1": { - "name": "x1", - "required": true, - "defaultValue": "", - "description": "" - }, - "y1": { - "name": "y1", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "findBound", - "timeCreated": "Tue Jul 02 17:49:32 GMT 2019", - "createdBy": "admin", - "description": "find where bound intersects given rect " - }, - "findTypes": { - "queryTemplate": "{ \"_operation\" : \"distinct\" , \"_operation_args\" : { \"field\" : \"provenance.analysis\", \"query\" : {\u0027provenance.image.slide\u0027: \"$slide$\" } } } ", - "metaData": {}, - "tags": [], - "bindVariables": { - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "findTypes", - "timeCreated": "Tue Jul 02 18:37:03 GMT 2019", - "createdBy": "admin", - "description": " " - } - }, - "deleteEndpoints": { - "deleteMark": { - "queryTemplate": "{\n\t\"_operation\" : \"delete\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}, \u0027provenance.image.slide\u0027: \"$slide$\" }\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "deleteMark", - "timeCreated": "Tue Jul 02 18:20:50 GMT 2019", - "createdBy": "admin", - "description": "" - } - }, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Wed Aug 01 17:23:41 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Wed Aug 01 17:23:41 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Wed Aug 01 17:23:41 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Wed Aug 01 17:23:41 UTC 2018", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "Mark", - "timeCreated": "Wed Aug 01 17:23:41 UTC 2018", - "createdBy": "admin", - "description": "Geospatial Marking Objects" - }, - "Overlay": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic", - "collection": "overlay", - "initialize": true - }, - "queryEndpoints": { - "get": { - "queryTemplate": "{\n\t\"_operation\" : \"find\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}} ,\n\t\t\t\t\t\t\t\"limit\" : 1\n\t\t\t\t\t\t}\n}\n ", - "metaData": {}, - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "get", - "timeCreated": "Wed Aug 29 18:41:00 UTC 2018", - "createdBy": "admin", - "description": " " - }, - "find": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" : { \"name\" : {$regex: \"$name$\", $options: \"i\"},\n\"slide\" : \"$slide$\",\n\"location\" : {$regex: \"$location$\", $options: \"i\"}}\n}\n} ", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": false, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "location": { - "name": "location", - "required": false, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "find", - "timeCreated": "Mon Jul 08 16:18:19 GMT 2019", - "createdBy": "admin", - "description": " " - } - }, - "deleteEndpoints": { - "updateOverlay": { - "queryTemplate": "{\n\t\"_operation\" : \"update\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027slide\u0027 : \"$slide$\", \u0027_id\u0027 : {\"$oid\":\"$id$\"}} ,\n\t\t\t\t\t\t\t\"update\": {$set: { \u0027$field$\u0027 : \u0027$value$\u0027 }},\n\t\t\t\t\t\t\t\"upsert\": \u0027true\u0027,\n\t\t\t\t\t\t\t\"multi\" : \u0027false\u0027\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - }, - "field": { - "name": "field", - "required": true, - "defaultValue": "", - "description": "" - }, - "value": { - "name": "value", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "updateOverlay", - "timeCreated": "Tue Jul 02 18:21:53 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "deleteOverlay": { - "queryTemplate": "{\n\t\"_operation\" : \"delete\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}, \u0027slide\u0027: \"$slide$\" }\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "deleteOverlay", - "timeCreated": "Tue Jul 02 18:22:07 GMT 2019", - "createdBy": "admin", - "description": "" - } - }, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Wed Aug 01 17:24:16 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Wed Aug 01 17:24:16 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Wed Aug 01 17:24:16 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Wed Aug 01 17:24:16 UTC 2018", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "Overlay", - "timeCreated": "Wed Aug 01 17:24:16 UTC 2018", - "createdBy": "admin", - "description": "Overlay Representation" - }, - "Slide": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic", - "collection": "slide", - "initialize": true - }, - "queryEndpoints": { - "get": { - "queryTemplate": "{\n\t\"_operation\" : \"find\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}} ,\n\t\t\t\t\t\t\t\"limit\" : 1\n\t\t\t\t\t\t}\n}\n ", - "metaData": {}, - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "get", - "timeCreated": "Wed Aug 29 18:41:29 UTC 2018", - "createdBy": "admin", - "description": " " - }, - "find": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" : {\u0027name\u0027: {$regex: \"$slide$\", $options: \"i\"},\n \u0027specimen\u0027: {$regex: \"$specimen$\", $options: \"i\"},\n \u0027study\u0027: {$regex: \"$study$\", $options: \"i\"},\n \u0027location\u0027: {$regex: \"$location$\", $options: \"i\"}}\n}\n} ", - "metaData": {}, - "tags": [], - "bindVariables": { - "slide": { - "name": "slide", - "required": false, - "defaultValue": "", - "description": "" - }, - "location": { - "name": "location", - "required": false, - "defaultValue": "", - "description": "" - }, - "specimen": { - "name": "specimen", - "required": false, - "defaultValue": "", - "description": "" - }, - "study": { - "name": "study", - "required": false, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "find", - "timeCreated": "Wed Nov 28 20:40:33 UTC 2018", - "createdBy": "admin", - "description": " " - } - }, - "deleteEndpoints": { - "updateSlide": { - "queryTemplate": "{\n\t\"_operation\" : \"update\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027name\u0027 : $slide$} ,\n\t\t\t\t\t\t\t\"update\": {$set: { \u0027$field$\u0027 : \u0027$value$\u0027 }},\n\t\t\t\t\t\t\t\"upsert\": \u0027true\u0027,\n\t\t\t\t\t\t\t\"multi\" : \u0027false\u0027\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "field": { - "name": "field", - "required": true, - "defaultValue": "", - "description": "" - }, - "value": { - "name": "value", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "updateSlide", - "timeCreated": "Tue Jul 02 18:21:13 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "deleteSlide": { - "queryTemplate": "{\n\t\"_operation\" : \"delete\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027slide.name\u0027 : \"\"$slide$\"\" }\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "deleteSlide", - "timeCreated": "Tue Jul 02 18:21:26 GMT 2019", - "createdBy": "admin", - "description": "" - } - }, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Wed Aug 01 17:24:37 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Wed Aug 01 17:24:37 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Wed Aug 01 17:24:37 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Wed Aug 01 17:24:37 UTC 2018", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "Slide", - "timeCreated": "Wed Aug 01 17:24:37 UTC 2018", - "createdBy": "admin", - "description": "Represents Slide Objects" - }, - "Template": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic", - "collection": "template", - "initialize": true - }, - "queryEndpoints": { - "find": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" : {\"name\": {$regex: \"$name$\", $options: \"i\"},\n \"type\": {$regex: \"$type$\", $options: \"i\"}}\n}\n} ", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": false, - "defaultValue": "", - "description": "" - }, - "type": { - "name": "type", - "required": false, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "find", - "timeCreated": "Mon Aug 27 15:46:51 UTC 2018", - "createdBy": "admin", - "description": " " - }, - "get": { - "queryTemplate": "{\n\t\"_operation\" : \"find\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}} ,\n\t\t\t\t\t\t\t\"limit\" : 1\n\t\t\t\t\t\t}\n}\n ", - "metaData": {}, - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "get", - "timeCreated": "Wed Aug 29 18:41:36 UTC 2018", - "createdBy": "admin", - "description": " " - } - }, - "deleteEndpoints": { - "deleteTemplate": { - "queryTemplate": "{\n\t\"_operation\" : \"delete\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}}\n\t\t\t\t\t\t}\n} ", - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "deleteTemplate", - "timeCreated": "Wed Aug 29 18:44:30 UTC 2018", - "createdBy": "admin", - "description": "" - } - }, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Wed Aug 01 17:25:14 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Wed Aug 01 17:25:14 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Wed Aug 01 17:25:14 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Wed Aug 01 17:25:14 UTC 2018", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "Template", - "timeCreated": "Wed Aug 01 17:25:14 UTC 2018", - "createdBy": "admin", - "description": "Templates for Forms, JSONFORM type" - }, - "Authorization": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic", - "collection": "authorization", - "initialize": true - }, - "queryEndpoints": { - "getAuth": { - "queryTemplate": "{\n\t\"_operation\" : \"find\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027name\u0027 : \u0027$name$\u0027 }\n\t\t\t\t\t\t}\n}\n", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "getAuth", - "timeCreated": "Fri Aug 10 19:27:36 UTC 2018", - "createdBy": "admin", - "description": "get auth for user" - }, - "list": { - "queryTemplate": "{\n\t\"_operation\" : \"find\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : {} ,\n\t\t\t\t\t\t\t\"fields\" :{ \u0027_id\u0027 : 0 }\n\t\t\t\t\t\t}\n}\n", - "metaData": {}, - "tags": [], - "bindVariables": {}, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "list", - "timeCreated": "Mon Dec 09 19:45:34 GMT 2019", - "createdBy": "admin", - "description": "list all auth with no queries" - } - }, - "deleteEndpoints": {}, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Fri Aug 10 19:26:51 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Fri Aug 10 19:26:51 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Fri Aug 10 19:26:51 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Fri Aug 10 19:26:51 UTC 2018", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "Authorization", - "timeCreated": "Fri Aug 10 19:26:51 UTC 2018", - "createdBy": "admin", - "description": "authorization for slides and collections" - }, - "Heatmap": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic", - "collection": "heatmap", - "initialize": true - }, - "queryEndpoints": { - "findTypes": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" : { \"provenance.analysis.execution_id\" : {$regex: \"$name$\", $options: \"i\"},\n\"provenance.image.slide\" : \"$slide$\"},\n\"fields\" :{ \u0027data\u0027 : 0 }\n}\n\n} ", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": false, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": false, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "findTypes", - "timeCreated": "Thu Jun 27 19:39:21 GMT 2019", - "createdBy": "admin", - "description": " " - }, - "find": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" : { \"provenance.analysis.execution_id\" : {$regex: \"$name$\", $options: \"i\"},\n\"provenance.image.slide\" : \"$slide$\"\n}\n} ", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": false, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": false, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "find", - "timeCreated": "Thu Jun 27 19:40:22 GMT 2019", - "createdBy": "admin", - "description": " " - }, - "get": { - "queryTemplate": "{\n\t\u0027_operation\u0027: \u0027find\u0027,\n\t\u0027_operation_args\u0027: \n\t{\n\t\u0027query\u0027: {\n\t\t\"provenance.image.slide\": \"$slide$\",\n\t\t\"provenance.analysis.execution_id\":\"$name$\"\n\t},\n\t\t\u0027fields\u0027: {\n\t\t\t\u0027provenance\u0027:1,\n\u0027data\u0027:1,\n\t\t\t\u0027_id\u0027: 1\n\t\t}\n\t}\n} ", - "metaData": {}, - "tags": [], - "bindVariables": { - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "name": { - "name": "name", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "get", - "timeCreated": "Mon Jul 01 20:07:42 GMT 2019", - "createdBy": "admin", - "description": " " - } - }, - "deleteEndpoints": { - "deleteHeatmap": { - "queryTemplate": "{\n\t\"_operation\" : \"delete\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}, \u0027provenance.image.slide\u0027: \"$slide$\" }\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "deleteHeatmap", - "timeCreated": "Wed Nov 14 16:24:04 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "updateThreshold": { - "queryTemplate": "{\n\t\"_operation\" : \"update\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : {\u0027provenance.analysis.execution_id\u0027 : \u0027$name$\u0027,\u0027provenance.image.slide\u0027 : \"$slide$\"} ,\n\t\t\t\t\t\t\t\"update\": {$set: { \u0027provenance.analysis.fields\u0027 : $fields$,\u0027provenance.analysis.setting\u0027 : $setting$ }},\n\t\t\t\t\t\t\t\"upsert\": true,\n\t\t\t\t\t\t\t\"multi\" : true\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": true, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "fields": { - "name": "fields", - "required": true, - "defaultValue": "", - "description": "" - }, - "setting": { - "name": "setting", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "updateThreshold", - "timeCreated": "Tue Jul 02 17:06:06 GMT 2019", - "createdBy": "admin", - "description": "" - } - }, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Wed Nov 14 15:49:26 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Wed Nov 14 15:49:26 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Wed Nov 14 15:49:26 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Wed Nov 14 15:49:26 UTC 2018", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "Heatmap", - "timeCreated": "Wed Nov 14 15:49:26 UTC 2018", - "createdBy": "admin", - "description": "Point Marking Objects" - }, - "HeatmapEdit": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic", - "collection": "heatmapEdit", - "initialize": true - }, - "queryEndpoints": { - "get": { - "queryTemplate": "{\n\t\"_operation\" : \"find\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}} ,\n\t\t\t\t\t\t\t\"limit\" : 1\n\t\t\t\t\t\t}\n}", - "metaData": {}, - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "get", - "timeCreated": "Wed Apr 24 18:10:50 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "find": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" : {\u0027user_id\u0027: {$regex: \"$user$\", $options: \"i\"},\n \u0027provenance.image.slide\u0027: \"$slide$\",\n \u0027provenance.analysis.execution_id\u0027: {$regex: \"$name$\", $options: \"i\"}}\n}\n}", - "metaData": {}, - "tags": [], - "bindVariables": { - "user": { - "name": "user", - "required": false, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": false, - "defaultValue": "", - "description": "" - }, - "name": { - "name": "name", - "required": false, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "find", - "timeCreated": "Thu Jun 27 19:40:01 GMT 2019", - "createdBy": "admin", - "description": " " - } - }, - "deleteEndpoints": { - "update": { - "queryTemplate": "{\n\t\"_operation\" : \"update\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027user_id\u0027 : \u0027$user$\u0027, \u0027provenance.image.specimen\u0027:\u0027$specimen$\u0027, \n\u0027provenance.image.slide\u0027:\"$slide$\",\u0027provenance.analysis.execution_id\u0027:\u0027$name$\u0027 } ,\n\t\t\t\t\t\t\t\"update\": {$set: { \u0027data\u0027 : $data$}},\n\t\t\t\t\t\t\t\"upsert\": true,\n\t\t\t\t\t\t\t\"multi\" : true\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "user": { - "name": "user", - "required": true, - "defaultValue": "", - "description": "" - }, - "specimen": { - "name": "specimen", - "required": true, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "name": { - "name": "name", - "required": true, - "defaultValue": "", - "description": "" - }, - "data": { - "name": "data", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "update", - "timeCreated": "Tue Jul 02 17:50:23 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "delete": { - "queryTemplate": "{\n\t\"_operation\" : \"delete\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027user_id\u0027 : \u0027$user$\u0027,\u0027provenance.image.slide\u0027: \"$slide$\", \u0027provenance.analysis.execution_id\u0027: \"$name$\" }\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "user": { - "name": "user", - "required": true, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "name": { - "name": "name", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "delete", - "timeCreated": "Tue Jul 02 18:24:29 GMT 2019", - "createdBy": "admin", - "description": "" - } - }, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Wed Apr 24 18:02:23 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Wed Apr 24 18:02:23 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Wed Apr 24 18:02:23 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Wed Apr 24 18:02:23 GMT 2019", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "HeatmapEdit", - "timeCreated": "Wed Apr 24 18:02:21 GMT 2019", - "createdBy": "admin", - "description": "Edit Data for Heatmaps" - }, - "Log": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic", - "collection": "log", - "initialize": true - }, - "queryEndpoints": {}, - "deleteEndpoints": {}, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Tue Oct 29 20:54:11 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Tue Oct 29 20:54:11 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Tue Oct 29 20:54:11 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Tue Oct 29 20:54:11 GMT 2019", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "Log", - "timeCreated": "Tue Oct 29 20:54:11 GMT 2019", - "createdBy": "admin", - "description": "log" - }, - "Configuration": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic", - "collection": "configuration", - "initialize": true - }, - "queryEndpoints": { - "getConfigByName": { - "queryTemplate": "{\n\t\"_operation\" : \"find\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027config_name\u0027 : \"$name$\"} ,\n\t\t\t\t\t\t\t\"limit\" : 1\n\t\t\t\t\t\t}\n}\n ", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "getConfigByName", - "timeCreated": "Thu Nov 07 17:09:07 GMT 2019", - "createdBy": "admin", - "description": "" - } - }, - "deleteEndpoints": {}, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Tue Oct 29 20:54:11 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Tue Oct 29 20:54:11 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Tue Oct 29 20:54:11 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Tue Oct 29 20:54:11 GMT 2019", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "Configuration", - "timeCreated": "Tue Oct 29 20:54:11 GMT 2019", - "createdBy": "admin", - "description": "configuration" - } - }, - "params": {}, - "name": "caMicroscope", - "timeCreated": "Wed Aug 01 17:17:55 UTC 2018", - "createdBy": "admin", - "description": "caMicroscope Data model" -} \ No newline at end of file diff --git a/config/bindaas_projects/caMicroscopePrivate.project b/config/bindaas_projects/caMicroscopePrivate.project deleted file mode 100644 index 356c8707..00000000 --- a/config/bindaas_projects/caMicroscopePrivate.project +++ /dev/null @@ -1,1283 +0,0 @@ -{ - "profiles": { - "Mark": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic-pri", - "collection": "mark", - "initialize": true - }, - "queryEndpoints": { - "get": { - "queryTemplate": "{\n\t\"_operation\" : \"find\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}} ,\n\t\t\t\t\t\t\t\"limit\" : 1\n\t\t\t\t\t\t}\n}\n ", - "metaData": {}, - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "get", - "timeCreated": "Wed Aug 29 18:40:50 UTC 2018", - "createdBy": "admin", - "description": " " - }, - "findTypesExec": { - "queryTemplate": "{ \"_operation\" : \"distinct\" , \"_operation_args\" : { \"field\" : \"provenance.analysis\", \"query\" : {\u0027provenance.image.slide\u0027: \"$slide$\",\u0027provenance.analysis.execution_id\u0027: $name$ } } } ", - "metaData": {}, - "tags": [], - "bindVariables": { - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "name": { - "name": "name", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "findTypesExec", - "timeCreated": "Thu May 09 15:09:53 GMT 2019", - "createdBy": "admin", - "description": " " - }, - "multiFind": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" :{$and: [\n{\"provenance.analysis.execution_id\": {$in: $name$},\n \"provenance.image.slide\" : \"$slide$\",\n \"footprint\": { $not: {$lt: $footprint$}},\n \"provenance.analysis.source\" : {$regex: \"$source$\", $options: \"i\"}},\n{\"x\": { $not: {$lt: $x0$}}},\n{\"x\": { $not: {$gt: $x1$}}},\n{\"y\": { $not: {$lt: $y0$}}},\n{\"y\": { $not: {$gt: $y1$}}}\n ]}\n}\n}\n ", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": true, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": false, - "defaultValue": "", - "description": "" - }, - "footprint": { - "name": "footprint", - "required": false, - "defaultValue": "0", - "description": "" - }, - "source": { - "name": "source", - "required": false, - "defaultValue": "", - "description": "" - }, - "x0": { - "name": "x0", - "required": false, - "defaultValue": "0", - "description": "" - }, - "x1": { - "name": "x1", - "required": false, - "defaultValue": "9", - "description": "" - }, - "y0": { - "name": "y0", - "required": false, - "defaultValue": "0", - "description": "" - }, - "y1": { - "name": "y1", - "required": false, - "defaultValue": "9", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "multiFind", - "timeCreated": "Tue Jul 02 17:47:09 GMT 2019", - "createdBy": "admin", - "description": " " - }, - "find": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" :{$and: [\n{\"provenance.analysis.execution_id\" : {$regex: \"$name$\", $options: \"i\"},\n \"provenance.image.slide\" : \"$slide$\",\n \"footprint\": { $not: {$lt: $footprint$}},\n \"provenance.analysis.source\" : {$regex: \"$source$\", $options: \"i\"}},\n{\"x\": { $not: {$lt: $x0$}}},\n{\"x\": { $not: {$gt: $x1$}}},\n{\"y\": { $not: {$lt: $y0$}}},\n{\"y\": { $not: {$gt: $y1$}}}\n ]}\n}\n}\n ", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": false, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": false, - "defaultValue": "", - "description": "" - }, - "source": { - "name": "source", - "required": false, - "defaultValue": "", - "description": "" - }, - "footprint": { - "name": "footprint", - "required": false, - "defaultValue": "0", - "description": "" - }, - "x0": { - "name": "x0", - "required": false, - "defaultValue": "0", - "description": "" - }, - "x1": { - "name": "x1", - "required": false, - "defaultValue": "9", - "description": "" - }, - "y0": { - "name": "y0", - "required": false, - "defaultValue": "0", - "description": "" - }, - "y1": { - "name": "y1", - "required": false, - "defaultValue": "9", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "find", - "timeCreated": "Tue Jul 02 17:48:26 GMT 2019", - "createdBy": "admin", - "description": " " - }, - "findBound": { - "queryTemplate": "{ \"_operation\" : \"find\" , \"_operation_args\" : { \"query\" : {\"provenance.analysis.execution_id\" : {$regex: \"$name$\", $options: \"i\"},\n \"provenance.image.slide\" : \"$slide$\",\n \"provenance.analysis.source\" : {$regex: \"$key$\", $options: \"i\"}, \"geometries.features.bound\": { $geoIntersects: { $geometry: { \"type\": \"Polygon\", \"coordinates\": [[[ $x0$, $y0$ ],[ $x0$, $y1$ ],[ $x1$, $y1$ ],[ $x1$, $y0$ ],[ $x0$, $y0$ ]]] } } } }, \"limit\" : 1000} } ", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": false, - "defaultValue": "", - "description": "" - }, - "key": { - "name": "key", - "required": false, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": false, - "defaultValue": "", - "description": "" - }, - "x0": { - "name": "x0", - "required": true, - "defaultValue": "", - "description": "" - }, - "y0": { - "name": "y0", - "required": true, - "defaultValue": "", - "description": "" - }, - "x1": { - "name": "x1", - "required": true, - "defaultValue": "", - "description": "" - }, - "y1": { - "name": "y1", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "findBound", - "timeCreated": "Tue Jul 02 17:49:32 GMT 2019", - "createdBy": "admin", - "description": "find where bound intersects given rect " - }, - "findTypes": { - "queryTemplate": "{ \"_operation\" : \"distinct\" , \"_operation_args\" : { \"field\" : \"provenance.analysis\", \"query\" : {\u0027provenance.image.slide\u0027: \"$slide$\" } } } ", - "metaData": {}, - "tags": [], - "bindVariables": { - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "findTypes", - "timeCreated": "Tue Jul 02 18:37:03 GMT 2019", - "createdBy": "admin", - "description": " " - } - }, - "deleteEndpoints": { - "deleteMark": { - "queryTemplate": "{\n\t\"_operation\" : \"delete\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}, \u0027provenance.image.slide\u0027: \"$slide$\" }\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "deleteMark", - "timeCreated": "Tue Jul 02 18:20:50 GMT 2019", - "createdBy": "admin", - "description": "" - } - }, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Wed Aug 01 17:23:41 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Wed Aug 01 17:23:41 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Wed Aug 01 17:23:41 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Wed Aug 01 17:23:41 UTC 2018", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "Mark", - "timeCreated": "Wed Aug 01 17:23:41 UTC 2018", - "createdBy": "admin", - "description": "Geospatial Marking Objects" - }, - "Overlay": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic-pri", - "collection": "overlay", - "initialize": true - }, - "queryEndpoints": { - "get": { - "queryTemplate": "{\n\t\"_operation\" : \"find\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}} ,\n\t\t\t\t\t\t\t\"limit\" : 1\n\t\t\t\t\t\t}\n}\n ", - "metaData": {}, - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "get", - "timeCreated": "Wed Aug 29 18:41:00 UTC 2018", - "createdBy": "admin", - "description": " " - }, - "find": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" : { \"name\" : {$regex: \"$name$\", $options: \"i\"},\n\"slide\" : \"$slide$\",\n\"location\" : {$regex: \"$location$\", $options: \"i\"}}\n}\n} ", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": false, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "location": { - "name": "location", - "required": false, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "find", - "timeCreated": "Mon Jul 08 16:18:19 GMT 2019", - "createdBy": "admin", - "description": " " - } - }, - "deleteEndpoints": { - "updateOverlay": { - "queryTemplate": "{\n\t\"_operation\" : \"update\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027slide\u0027 : \"$slide$\", \u0027_id\u0027 : {\"$oid\":\"$id$\"}} ,\n\t\t\t\t\t\t\t\"update\": {$set: { \u0027$field$\u0027 : \u0027$value$\u0027 }},\n\t\t\t\t\t\t\t\"upsert\": \u0027true\u0027,\n\t\t\t\t\t\t\t\"multi\" : \u0027false\u0027\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - }, - "field": { - "name": "field", - "required": true, - "defaultValue": "", - "description": "" - }, - "value": { - "name": "value", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "updateOverlay", - "timeCreated": "Tue Jul 02 18:21:53 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "deleteOverlay": { - "queryTemplate": "{\n\t\"_operation\" : \"delete\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}, \u0027slide\u0027: \"$slide$\" }\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "deleteOverlay", - "timeCreated": "Tue Jul 02 18:22:07 GMT 2019", - "createdBy": "admin", - "description": "" - } - }, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Wed Aug 01 17:24:16 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Wed Aug 01 17:24:16 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Wed Aug 01 17:24:16 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Wed Aug 01 17:24:16 UTC 2018", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "Overlay", - "timeCreated": "Wed Aug 01 17:24:16 UTC 2018", - "createdBy": "admin", - "description": "Overlay Representation" - }, - "Slide": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic-pri", - "collection": "slide", - "initialize": true - }, - "queryEndpoints": { - "get": { - "queryTemplate": "{\n\t\"_operation\" : \"find\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}} ,\n\t\t\t\t\t\t\t\"limit\" : 1\n\t\t\t\t\t\t}\n}\n ", - "metaData": {}, - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "get", - "timeCreated": "Wed Aug 29 18:41:29 UTC 2018", - "createdBy": "admin", - "description": " " - }, - "find": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" : {\u0027name\u0027: {$regex: \"$slide$\", $options: \"i\"},\n \u0027specimen\u0027: {$regex: \"$specimen$\", $options: \"i\"},\n \u0027study\u0027: {$regex: \"$study$\", $options: \"i\"},\n \u0027location\u0027: {$regex: \"$location$\", $options: \"i\"},\n \u0027collection: $collection$\"\n}\n}\n} ", - "metaData": {}, - "tags": [], - "bindVariables": { - "slide": { - "name": "slide", - "required": false, - "defaultValue": "", - "description": "" - }, - "location": { - "name": "location", - "required": false, - "defaultValue": "", - "description": "" - }, - "specimen": { - "name": "specimen", - "required": false, - "defaultValue": "", - "description": "" - }, - "study": { - "name": "study", - "required": false, - "defaultValue": "", - "description": "" - }, - "collection": { - "name": "collection", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "find", - "timeCreated": "Mon Oct 28 19:07:35 GMT 2019", - "createdBy": "admin", - "description": " " - } - }, - "deleteEndpoints": { - "updateSlide": { - "queryTemplate": "{\n\t\"_operation\" : \"update\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027name\u0027 : $slide$} ,\n\t\t\t\t\t\t\t\"update\": {$set: { \u0027$field$\u0027 : \u0027$value$\u0027 }},\n\t\t\t\t\t\t\t\"upsert\": \u0027true\u0027,\n\t\t\t\t\t\t\t\"multi\" : \u0027false\u0027\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "field": { - "name": "field", - "required": true, - "defaultValue": "", - "description": "" - }, - "value": { - "name": "value", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "updateSlide", - "timeCreated": "Tue Jul 02 18:21:13 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "deleteSlide": { - "queryTemplate": "{\n\t\"_operation\" : \"delete\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027slide.name\u0027 : \"\"$slide$\"\" }\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "deleteSlide", - "timeCreated": "Tue Jul 02 18:21:26 GMT 2019", - "createdBy": "admin", - "description": "" - } - }, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Wed Aug 01 17:24:37 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Wed Aug 01 17:24:37 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Wed Aug 01 17:24:37 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Wed Aug 01 17:24:37 UTC 2018", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "Slide", - "timeCreated": "Wed Aug 01 17:24:37 UTC 2018", - "createdBy": "admin", - "description": "Represents Slide Objects" - }, - "Template": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic-pri", - "collection": "template", - "initialize": true - }, - "queryEndpoints": { - "find": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" : {\"name\": {$regex: \"$name$\", $options: \"i\"},\n \"type\": {$regex: \"$type$\", $options: \"i\"}}\n}\n} ", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": false, - "defaultValue": "", - "description": "" - }, - "type": { - "name": "type", - "required": false, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "find", - "timeCreated": "Mon Aug 27 15:46:51 UTC 2018", - "createdBy": "admin", - "description": " " - }, - "get": { - "queryTemplate": "{\n\t\"_operation\" : \"find\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}} ,\n\t\t\t\t\t\t\t\"limit\" : 1\n\t\t\t\t\t\t}\n}\n ", - "metaData": {}, - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "get", - "timeCreated": "Wed Aug 29 18:41:36 UTC 2018", - "createdBy": "admin", - "description": " " - } - }, - "deleteEndpoints": { - "deleteTemplate": { - "queryTemplate": "{\n\t\"_operation\" : \"delete\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}}\n\t\t\t\t\t\t}\n} ", - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "deleteTemplate", - "timeCreated": "Wed Aug 29 18:44:30 UTC 2018", - "createdBy": "admin", - "description": "" - } - }, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Wed Aug 01 17:25:14 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Wed Aug 01 17:25:14 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Wed Aug 01 17:25:14 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Wed Aug 01 17:25:14 UTC 2018", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "Template", - "timeCreated": "Wed Aug 01 17:25:14 UTC 2018", - "createdBy": "admin", - "description": "Templates for Forms, JSONFORM type" - }, - "Authorization": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic-pri", - "collection": "authorization", - "initialize": true - }, - "queryEndpoints": { - "getAuth": { - "queryTemplate": "{\n\t\"_operation\" : \"find\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027name\u0027 : \u0027$name$\u0027 }\n\t\t\t\t\t\t}\n}\n", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "getAuth", - "timeCreated": "Fri Aug 10 19:27:36 UTC 2018", - "createdBy": "admin", - "description": "get auth for user" - } - }, - "deleteEndpoints": {}, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Fri Aug 10 19:26:51 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Fri Aug 10 19:26:51 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Fri Aug 10 19:26:51 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Fri Aug 10 19:26:51 UTC 2018", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "Authorization", - "timeCreated": "Fri Aug 10 19:26:51 UTC 2018", - "createdBy": "admin", - "description": "authorization for slides and collections" - }, - "Heatmap": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic-pri", - "collection": "heatmap", - "initialize": true - }, - "queryEndpoints": { - "findTypes": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" : { \"provenance.analysis.execution_id\" : {$regex: \"$name$\", $options: \"i\"},\n\"provenance.image.slide\" : \"$slide$\"},\n\"fields\" :{ \u0027data\u0027 : 0 }\n}\n\n} ", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": false, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": false, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "findTypes", - "timeCreated": "Thu Jun 27 19:39:21 GMT 2019", - "createdBy": "admin", - "description": " " - }, - "find": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" : { \"provenance.analysis.execution_id\" : {$regex: \"$name$\", $options: \"i\"},\n\"provenance.image.slide\" : \"$slide$\"\n}\n} ", - "metaData": {}, - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": false, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": false, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "find", - "timeCreated": "Thu Jun 27 19:40:22 GMT 2019", - "createdBy": "admin", - "description": " " - }, - "get": { - "queryTemplate": "{\n\t\u0027_operation\u0027: \u0027find\u0027,\n\t\u0027_operation_args\u0027: \n\t{\n\t\u0027query\u0027: {\n\t\t\"provenance.image.slide\": \"$slide$\",\n\t\t\"provenance.analysis.execution_id\":\"$name$\"\n\t},\n\t\t\u0027fields\u0027: {\n\t\t\t\u0027provenance\u0027:1,\n\u0027data\u0027:1,\n\t\t\t\u0027_id\u0027: 1\n\t\t}\n\t}\n} ", - "metaData": {}, - "tags": [], - "bindVariables": { - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "name": { - "name": "name", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "get", - "timeCreated": "Mon Jul 01 20:07:42 GMT 2019", - "createdBy": "admin", - "description": " " - } - }, - "deleteEndpoints": { - "deleteHeatmap": { - "queryTemplate": "{\n\t\"_operation\" : \"delete\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}, \u0027provenance.image.slide\u0027: \"$slide$\" }\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "deleteHeatmap", - "timeCreated": "Wed Nov 14 16:24:04 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "updateThreshold": { - "queryTemplate": "{\n\t\"_operation\" : \"update\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : {\u0027provenance.analysis.execution_id\u0027 : \u0027$name$\u0027,\u0027provenance.image.slide\u0027 : \"$slide$\"} ,\n\t\t\t\t\t\t\t\"update\": {$set: { \u0027provenance.analysis.fields\u0027 : $fields$,\u0027provenance.analysis.setting\u0027 : $setting$ }},\n\t\t\t\t\t\t\t\"upsert\": true,\n\t\t\t\t\t\t\t\"multi\" : true\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "name": { - "name": "name", - "required": true, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "fields": { - "name": "fields", - "required": true, - "defaultValue": "", - "description": "" - }, - "setting": { - "name": "setting", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "updateThreshold", - "timeCreated": "Tue Jul 02 17:06:06 GMT 2019", - "createdBy": "admin", - "description": "" - } - }, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Wed Nov 14 15:49:26 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Wed Nov 14 15:49:26 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Wed Nov 14 15:49:26 UTC 2018", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Wed Nov 14 15:49:26 UTC 2018", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "Heatmap", - "timeCreated": "Wed Nov 14 15:49:26 UTC 2018", - "createdBy": "admin", - "description": "Point Marking Objects" - }, - "HeatmapEdit": { - "dataSource": { - "host": "ca-mongo", - "port": "27017", - "db": "camic-pri", - "collection": "heatmapEdit", - "initialize": true - }, - "queryEndpoints": { - "get": { - "queryTemplate": "{\n\t\"_operation\" : \"find\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027_id\u0027 : {\"$oid\":\"$id$\"}} ,\n\t\t\t\t\t\t\t\"limit\" : 1\n\t\t\t\t\t\t}\n}", - "metaData": {}, - "tags": [], - "bindVariables": { - "id": { - "name": "id", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "get", - "timeCreated": "Wed Apr 24 18:10:50 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "find": { - "queryTemplate": "{\n \"_operation\" : \"find\" ,\n \"_operation_args\" : {\n\"query\" : {\u0027user_id\u0027: {$regex: \"$user$\", $options: \"i\"},\n \u0027provenance.image.slide\u0027: \"$slide$\",\n \u0027provenance.analysis.execution_id\u0027: {$regex: \"$name$\", $options: \"i\"}}\n}\n}", - "metaData": {}, - "tags": [], - "bindVariables": { - "user": { - "name": "user", - "required": false, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": false, - "defaultValue": "", - "description": "" - }, - "name": { - "name": "name", - "required": false, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "outputFormat": { - "outputFormat": "JSON" - }, - "name": "find", - "timeCreated": "Thu Jun 27 19:40:01 GMT 2019", - "createdBy": "admin", - "description": " " - } - }, - "deleteEndpoints": { - "update": { - "queryTemplate": "{\n\t\"_operation\" : \"update\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027user_id\u0027 : \u0027$user$\u0027, \u0027provenance.image.specimen\u0027:\u0027$specimen$\u0027, \n\u0027provenance.image.slide\u0027:\"$slide$\",\u0027provenance.analysis.execution_id\u0027:\u0027$name$\u0027 } ,\n\t\t\t\t\t\t\t\"update\": {$set: { \u0027data\u0027 : $data$}},\n\t\t\t\t\t\t\t\"upsert\": true,\n\t\t\t\t\t\t\t\"multi\" : true\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "user": { - "name": "user", - "required": true, - "defaultValue": "", - "description": "" - }, - "specimen": { - "name": "specimen", - "required": true, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "name": { - "name": "name", - "required": true, - "defaultValue": "", - "description": "" - }, - "data": { - "name": "data", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "update", - "timeCreated": "Tue Jul 02 17:50:23 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "delete": { - "queryTemplate": "{\n\t\"_operation\" : \"delete\" ,\n\t\"_operation_args\" : {\n\t\t\t\t\t\t\t\"query\" : { \u0027user_id\u0027 : \u0027$user$\u0027,\u0027provenance.image.slide\u0027: \"$slide$\", \u0027provenance.analysis.execution_id\u0027: \"$name$\" }\n\t\t\t\t\t\t}\n}\n ", - "tags": [], - "bindVariables": { - "user": { - "name": "user", - "required": true, - "defaultValue": "", - "description": "" - }, - "slide": { - "name": "slide", - "required": true, - "defaultValue": "", - "description": "" - }, - "name": { - "name": "name", - "required": true, - "defaultValue": "", - "description": "" - } - }, - "stage": "UNVERIFIED", - "name": "delete", - "timeCreated": "Tue Jul 02 18:24:29 GMT 2019", - "createdBy": "admin", - "description": "" - } - }, - "submitEndpoints": { - "csvFile": { - "type": "MULTIPART", - "properties": { - "inputType": "CSV_FILE" - }, - "name": "csvFile", - "timeCreated": "Wed Apr 24 18:02:23 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "jsonFile": { - "type": "MULTIPART", - "properties": { - "inputType": "JSON_FILE" - }, - "name": "jsonFile", - "timeCreated": "Wed Apr 24 18:02:23 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "csv": { - "type": "FORM_DATA", - "properties": { - "inputType": "CSV" - }, - "name": "csv", - "timeCreated": "Wed Apr 24 18:02:23 GMT 2019", - "createdBy": "admin", - "description": "" - }, - "json": { - "type": "FORM_DATA", - "properties": { - "inputType": "JSON" - }, - "name": "json", - "timeCreated": "Wed Apr 24 18:02:23 GMT 2019", - "createdBy": "admin", - "description": "" - } - }, - "providerId": "edu.emory.cci.bindaas.datasource.provider.mongodb.MongoDBProvider", - "providerVersion": 1, - "name": "HeatmapEdit", - "timeCreated": "Wed Apr 24 18:02:21 GMT 2019", - "createdBy": "admin", - "description": "Edit Data for Heatmaps" - } - }, - "params": {}, - "name": "caMicroscopePrivate", - "timeCreated": "Wed Aug 01 17:17:55 UTC 2018", - "createdBy": "admin", - "description": "caMicroscope using another db and some additional fields" -} \ No newline at end of file diff --git a/config/mongo_idx.js b/config/mongo_idx.js index a728c3b5..1b8ad988 100644 --- a/config/mongo_idx.js +++ b/config/mongo_idx.js @@ -1,4 +1,5 @@ db.authorization.createIndex( { "name": 1 }, { unique: true } ) +db.user.createIndex( { "email": 1 }, { unique: true } ) db.mark.createIndex({"provenance.image.slide": 1, "provenance.analysis.execution_id": 1, "footprint":1, "x":1, "y":1}) db.mark.createIndex({"provenance.image.slide":1,"provenance.analysis.execution_id":1,"provenance.analysis": 1}) db.mark.createIndex({"provenance.image.slide":1,"provenance.analysis": 1}) diff --git a/config/mongo_idx_pri.js b/config/mongo_idx_pri.js deleted file mode 100644 index 2617db89..00000000 --- a/config/mongo_idx_pri.js +++ /dev/null @@ -1 +0,0 @@ -db.slide.createIndex({'study':1, 'specimen': 1, 'name': 1, 'collection': 1}) diff --git a/config/non-pathdb-routes.json b/config/non-pathdb-routes.json deleted file mode 100644 index 6de515c2..00000000 --- a/config/non-pathdb-routes.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "root":"http://ca-front:80/", - "_root_public": "true", - "auth":{ - "permissions_field":"attrs", - "key_field": "accessCollection" - }, - "services":{ - "data":{ - "_base": "http://ca-data:9099/services/caMicroscope", - "Mark": { - "get":"/Mark/query/get", - "find":"/Mark/query/find", - "multi":"/Mark/query/multiFind", - "findBound":"/Mark/query/findBound", - "types":"/Mark/query/findTypes", - "typesExec":"/Mark/query/findTypesExec", - "post":{"path": "/Mark/submit/json", "attr": "write"}, - "delete":{"path": "/Mark/delete/deleteMark", "attr": "write"} - }, - "Heatmap": { - "get":"/Heatmap/query/get", - "find":"/Heatmap/query/find", - "types":"/Heatmap/query/findTypes", - "post":{"path": "/Heatmap/submit/json", "attr": "write"}, - "delete":{"path": "/Heatmap/delete/deleteHeatmap", "attr": "write"}, - "threshold":{"path": "/Heatmap/delete/updateThreshold", "attr": "write"} - }, - "Overlay": { - "get":"/Overlay/query/get", - "find":"/Overlay/query/find", - "post":{"path": "/Overlay/submit/json", "attr": "write"}, - "delete":{"path": "/Overlay/delete/deleteOverlay", "attr": "write"} - }, - "Slide": { - "get":"/Slide/query/get", - "find":"/Slide/query/find", - "post":{"path": "/Slide/submit/json", "attr": "write"}, - "delete":{"path": "/Slide/delete/deleteSlide", "attr": "write"}, - "update":{"path": "/Slide/delete/updateSlide", "attr": "write"}, - "test":{"path":"/Slide/query/find", "check_param": "collection"} - }, - "Template": { - "get":"/Template/query/get", - "find":"/Template/query/find", - "post":{"path": "/Template/submit/json", "attr": "write"}, - "delete":{"path": "/Template/delete/deleteTemplate", "attr": "write"} - }, - "HeatmapEdit": { - "get":"/HeatmapEdit/query/get", - "find":"/HeatmapEdit/query/find", - "post":{"path": "/HeatmapEdit/submit/json", "attr": "write"}, - "delete":{"path": "/HeatmapEdit/delete/delete", "attr": "write"}, - "update":{"path": "/HeatmapEdit/delete/update", "attr": "write"} - }, - "Auth": { - "get":{"path": "/Authorization/query/getAuth", "attr": "admin"}, - "post":{"path": "/Authorization/submit/json", "attr": "admin"} - }, - "Log": { - "post": "/Log/submit/json" - } - }, - "img": { - "_base":"http://ca-iip/fcgi-bin/iipsrv.fcgi", - "IIP": { - "raw":"" - }, - "Slide":{ - "_resolver":{ - "destination":"?DeepZoom={OUT}", - "url":"http://ca-data:9099/services/caMicroscope/Slide/query/get?id={IN}", - "field":"location", - "before":["_files", ".dzi"] - } - } - }, - "load": { - "_base": "http://ca-load:4000", - "Upload": { - "start": {"path":"/upload/start", "attr": "write"}, - "continue":"/upload/continue", - "finish":"/upload/finish" - }, - "Slide":{ - "info":"/data/one", - "thumb":"/data/thumbnail" - } - }, - "auth": { - "_public": "true", - "_base": "http://ca-auth:8010", - "Token":{ - "check":"/check" - } - } - } -} diff --git a/config/routes.json b/config/routes.json deleted file mode 100644 index a34d9786..00000000 --- a/config/routes.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "root":"http://ca-front:80/", - "_root_public": "true", - "auth":{ - "key_field": "accessCollection" - }, - "services":{ - "data":{ - "_base": "http://ca-data:9099/services/caMicroscope", - "Mark": { - "get":"/Mark/query/get", - "find":"/Mark/query/find", - "multi":"/Mark/query/multiFind", - "findBound":"/Mark/query/findBound", - "types":"/Mark/query/findTypes", - "typesExec":"/Mark/query/findTypesExec", - "post":{"path": "/Mark/submit/json", "attr": "write"}, - "delete":{"path": "/Mark/delete/deleteMark", "attr": "write"} - }, - "Heatmap": { - "get":"/Heatmap/query/get", - "find":"/Heatmap/query/find", - "types":"/Heatmap/query/findTypes", - "post":{"path": "/Heatmap/submit/json", "attr": "write"}, - "delete":{"path": "/Heatmap/delete/deleteHeatmap", "attr": "write"}, - "threshold":{"path": "/Heatmap/delete/updateThreshold", "attr": "write"} - }, - "Overlay": { - "get":"/Overlay/query/get", - "find":"/Overlay/query/find", - "post":{"path": "/Overlay/submit/json", "attr": "write"}, - "delete":{"path": "/Overlay/delete/deleteOverlay", "attr": "write"} - }, - "Slide": { - "get":"/Slide/query/get", - "find":"/Slide/query/find", - "post":{"path": "/Slide/submit/json", "attr": "write"}, - "delete":{"path": "/Slide/delete/deleteSlide", "attr": "write"}, - "update":{"path": "/Slide/delete/updateSlide", "attr": "write"}, - "test":{"path":"/Slide/query/find", "check_param": "collection"} - }, - "Template": { - "get":"/Template/query/get", - "find":"/Template/query/find", - "post":{"path": "/Template/submit/json", "attr": "write"}, - "delete":{"path": "/Template/delete/deleteTemplate", "attr": "write"} - }, - "HeatmapEdit": { - "get":"/HeatmapEdit/query/get", - "find":"/HeatmapEdit/query/find", - "post":{"path": "/HeatmapEdit/submit/json", "attr": "write"}, - "delete":{"path": "/HeatmapEdit/delete/delete", "attr": "write"}, - "update":{"path": "/HeatmapEdit/delete/update", "attr": "write"} - }, - "Auth": { - "list":"/Authorization/query/list", - "get":{"path": "/Authorization/query/getAuth", "attr": "admin"}, - "post":{"path": "/Authorization/submit/json", "attr": "admin"} - }, - "Log": { - "post": "/Log/submit/json" - }, - "Configuration": { - "getConfigByName": "/Configuration/query/getConfigByName" - } - }, - "private":{ - "_base": "http://ca-data:9099/services/caMicroscopePrivate", - "Slide": { - "get":"/Slide/query/get", - "find":{"path": "/Slide/query/find","check_param": "collection"}, - "post":{"path": "/Slide/submit/json", "attr": "write"}, - "delete":{"path": "/Slide/delete/deleteSlide", "attr": "write"}, - "update":{"path": "/Slide/delete/updateSlide", "attr": "write"} - } - }, - "img": { - "_base":"http://ca-iip/fcgi-bin/iipsrv.fcgi", - "IIP": { - "raw":"" - }, - "Slide":{ - "_resolver":{ - "destination":"?DeepZoom={OUT}", - "url":"http://ca-data:9099/services/caMicroscope/Slide/query/get?id={IN}", - "field":"location", - "before":["_files", ".dzi"] - } - } - }, - "load": { - "_base": "http://ca-load:4000", - "Upload": { - "start": {"path":"/upload/start", "attr": "write"}, - "continue":"/upload/continue", - "finish":"/upload/finish" - }, - "Slide":{ - "info":"/data/one", - "thumb":"/data/thumbnail" - } - }, - "auth": { - "_public": "true", - "_base": "http://ca-auth:8010", - "Token":{ - "check":"/check" - } - } - } -} diff --git a/config/run_idx.sh b/config/run_idx.sh index 25b43aab..d6c8ba10 100755 --- a/config/run_idx.sh +++ b/config/run_idx.sh @@ -4,9 +4,9 @@ do done mongo --host ca-mongo camic /config/mongo_idx.js -mongo --host ca-mongo camic-pri /config/mongo_idx_pri.js echo "indexes created" mongo --host ca-mongo camic /config/add_mongo_users.js +mongo --host ca-mongo camic /config/add_users.js echo "users created" mongo --host ca-mongo camic /config/default_data.js echo "defaults added" diff --git a/develop.yml b/develop.yml index f0b7c270..31c81abd 100644 --- a/develop.yml +++ b/develop.yml @@ -1,14 +1,18 @@ -version: '3' +version: '2' services: mongo: image: mongo:3.4.19-jessie container_name: ca-mongo + logging: + driver: none volumes: - ./db:/data/db idxMongo: image: mongo:3.4.19-jessie container_name: ca-idx + logging: + driver: none links: - mongo volumes: @@ -17,48 +21,33 @@ services: - /config/run_idx.sh depends_on: - mongo - bindaas: - build: "./Deps/Bindaas/" + back: + build: + context: "https://github.com/camicroscope/caracal.git#develop" + args: + viewer: "develop" depends_on: - "mongo" ports: - - "8080:8080" - - "9099:9099" - container_name: ca-data + - "4010:4010" + container_name: ca-back volumes: - - ./config/bindaas_projects/:/root/bindaas/bin/projects/ - - ./config/bindaas.config.json:/root/bindaas/bin/bindaas.config.json + - ./config/login.html:/root/src/static/login.html + - ./jwt_keys/:/root/src/keys/ + environment: + JWK_URL: "https://www.googleapis.com/oauth2/v3/certs" + IIP_PATH: "http://ca-iip/fcgi-bin/iipsrv.fcgi" + MONGO_URI: "mongodb://ca-mongo" + DISABLE_SEC: "true" + ALLOW_PUBLIC: "true" iip: - build: "https://github.com/caMicroscope/iipImage.git#develop" + image: camicroscope/iipimage:latest container_name: ca-iip + restart: unless-stopped volumes: - ./images/:/images/ - viewer: - build: "https://github.com/caMicroscope/caMicroscope.git#develop" - container_name: ca-front - environment: - - cacheoff=true - volumes: - - ./config/login.html:/usr/local/apache2/htdocs/login.html loader: - build: "https://github.com/caMicroscope/SlideLoader.git#develop" + build: "https://github.com/camicroscope/SlideLoader.git#develop" container_name: ca-load volumes: - ./images/:/images/ - security: - build: "https://github.com/caMicroscope/Security.git#develop" - container_name: ca-security - ports: - - "4010:4010" - environment: - - DISABLE_SEC=true - volumes: - - ./config/non-pathdb-routes.json:/root/src/routes.json - - ./jwt_keys/:/keys/ - auth: - build: "./Deps/auth_service/" - volumes: - - ./jwt_keys/:/keys/ - container_name: ca-auth - environment: - JWKS: "https://www.googleapis.com/oauth2/v3/certs" diff --git a/dh_caMicroscope.yml b/dh_caMicroscope.yml index 3f107059..ff1bbf50 100644 --- a/dh_caMicroscope.yml +++ b/dh_caMicroscope.yml @@ -22,31 +22,22 @@ services: - /config/run_idx.sh depends_on: - mongo - bindaas: - image: camicroscope/bindaas:latest + back: + image: camicroscope/caracal:latest depends_on: - "mongo" - container_name: ca-data - restart: unless-stopped - logging: - driver: none + ports: + - "4010:8010" + container_name: ca-back volumes: - - ./config/bindaas_projects/:/root/bindaas/bin/projects/ - - ./config/bindaas.config.json:/root/bindaas/bin/bindaas.config.json + - ./config/login.html:/root/src/static/login.html + - ./jwt_keys/:/root/src/keys/ iip: image: camicroscope/iipimage:latest container_name: ca-iip restart: unless-stopped volumes: - ./images/:/images/ - viewer: - image: camicroscope/viewer:latest - container_name: ca-front - restart: unless-stopped - volumes: - - ./config/login.html:/usr/local/apache2/htdocs/login.html - logging: - driver: none loader: image: camicroscope/slideloader:latest container_name: ca-load @@ -55,24 +46,3 @@ services: driver: none volumes: - ./images/:/images/ - security: - image: camicroscope/security:latest - container_name: ca-security - restart: unless-stopped - ports: - - "4010:4010" - volumes: - - ./config/non-pathdb-routes.json:/root/src/routes.json - - ./jwt_keys/:/keys/ - environment: - - DISABLE_SEC=true - auth: - image: camicroscope/auth_service:latest - volumes: - - ./jwt_keys/:/keys/ - container_name: ca-auth - environment: - JWKS: "https://www.googleapis.com/oauth2/v3/certs" - restart: unless-stopped - logging: - driver: none diff --git a/dh_quip-pathdb.yml b/dh_quip-pathdb.yml deleted file mode 100644 index 243a9eb1..00000000 --- a/dh_quip-pathdb.yml +++ /dev/null @@ -1,84 +0,0 @@ -version: '3' - -services: - mongo: - image: mongo - container_name: ca-mongo - restart: unless-stopped - volumes: - - ./db:/data/db - logging: - driver: none - idxMongo: - image: mongo - container_name: ca-idx - links: - - mongo - volumes: - - ./config:/config - command: - - /config/run_idx.sh - depends_on: - - mongo - bindaas: - image: camicroscope/bindaas:latest - depends_on: - - "mongo" - container_name: ca-data - restart: unless-stopped - logging: - driver: none - ports: ["8080:8080", "9099:9099"] - volumes: - - ./config/bindaas_projects/:/root/bindaas/bin/projects/ - - ./config/bindaas.config.json:/root/bindaas/bin/bindaas.config.json - iip: - image: camicroscope/iipimage:latest - container_name: ca-iip - restart: unless-stopped - volumes: - - ./images/:/data/images/ - security: - image: camicroscope/security:latest - container_name: ca-security - restart: unless-stopped - ports: ["4010:4010"] - volumes: - - ./config/pathdb_routes.json:/root/src/routes.json - environment: - - DISABLE_SEC=true - auth: - image: camicroscope/auth_service:latest - container_name: ca-auth - logging: - driver: none - pathdb: - image: camicroscope/pathdb:latest - container_name: quip-pathdb - restart: unless-stopped - ports: ["443:443","80:80"] - volumes: - - ./data:/data/ - - ./images/:/data/pathdb/files/wsi - - ./config/pathdb:/quip/web/sites/default - - ./jwt_keys/:/keys/ - - ./config:/config - command: - - /config/pathdb_pre.sh - imageloader: - image: camicroscope/pathdb-imageloader:latest - container_name: quip-imageloader - volumes: - - ./data:/data/ - - ./images:/data/images - segloader: - image: camicroscope/pathdb-segloader:latest - container_name: quip-segloader - volumes: - - ./data:/data - heatmaploader: - image: camicroscope/pathdb-heatmaploader:latest - container_name: quip-hmloader - ports: ["27017:27017"] - volumes: - - ./data:/mnt/data/ diff --git a/expiremental.yml b/expiremental.yml deleted file mode 100644 index a9474030..00000000 --- a/expiremental.yml +++ /dev/null @@ -1,51 +0,0 @@ -version: '3' - -services: - mongo: - image: mongo:3.4.19-jessie - container_name: ca-mongo - logging: - driver: none - volumes: - - ./db:/data/db - idxMongo: - image: mongo:3.4.19-jessie - container_name: ca-idx - logging: - driver: none - links: - - mongo - volumes: - - ./config:/config - command: - - /config/run_idx.sh - depends_on: - - mongo - back: - build: - context: "https://github.com/camicroscope/caboodle.git" - args: - viewer: "exp" - depends_on: - - "mongo" - ports: - - "8010:8010" - container_name: ca-back - volumes: - - ./config/login.html:/root/src/static/login.html - - ./jwt_keys/:/root/src/keys/ - - environment: - JWK_URL: "https://www.googleapis.com/oauth2/v3/certs" - IIP_PATH: "http://ca-iip/fcgi-bin/iipsrv.fcgi" - MONGO_URI: "mongodb://ca-mongo" - iip: - build: "https://github.com/camicroscope/iipImage.git#develop" - container_name: ca-iip - volumes: - - ./images/:/images/ - loader: - build: "https://github.com/camicroscope/SlideLoader.git#develop" - container_name: ca-load - volumes: - - ./images/:/images/ diff --git a/jwt_keys/make_keys.sh b/jwt_keys/make_keys.sh old mode 100644 new mode 100755 diff --git a/keys/make_keys.sh b/keys/make_keys.sh old mode 100644 new mode 100755 diff --git a/quip-pathdb.yml b/quip-pathdb.yml index 8a411df5..71abd36b 100644 --- a/quip-pathdb.yml +++ b/quip-pathdb.yml @@ -20,43 +20,34 @@ services: - /config/run_idx.sh depends_on: - mongo - bindaas: - build: "./Deps/Bindaas/" - depends_on: - - "mongo" - container_name: ca-data - restart: unless-stopped - logging: - driver: none - ports: ["8080:8080", "9099:9099"] - volumes: - - ./config/bindaas_projects/:/root/bindaas/bin/projects/ - - ./config/bindaas.config.json:/root/bindaas/bin/bindaas.config.json iip: build: "https://github.com/camicroscope/iipImage.git#v3.2.0" container_name: ca-iip restart: unless-stopped volumes: - ./images/:/data/images/ - security: - build: "https://github.com/camicroscope/Security.git#v3.6.2" - container_name: ca-security - restart: unless-stopped - ports: ["4010:4010"] + back: + build: + context: "https://github.com/camicroscope/caracal.git#develop" + args: + viewer: "develop" + depends_on: + - "mongo" + ports: + - "4010:8010" + container_name: ca-back volumes: - - ./config/pathdb_routes.json:/root/src/routes.json + - ./keys/:/root/src/keys/ environment: - - DISABLE_SEC=true - auth: - build: "./Deps/auth_service/" - container_name: ca-auth - logging: - driver: none + JWK_URL: "https://www.googleapis.com/oauth2/v3/certs" + IIP_PATH: "http://ca-iip/fcgi-bin/iipsrv.fcgi" + MONGO_URI: "mongodb://ca-mongo" + DEFAULT_USER_TYPE: "Editor" pathdb: build: context: "https://github.com/SBU-BMI/PathDB.git#1.3.5" args: - viewer: "v3.6.2" + viewer: "develop" container_name: quip-pathdb restart: unless-stopped ports: ["443:443","80:80"] diff --git a/test/test_add_slide.js b/test/test_add_slide.js index 9c31e750..2baf4657 100644 --- a/test/test_add_slide.js +++ b/test/test_add_slide.js @@ -5,7 +5,7 @@ const fetch = require("node-fetch") // jsdom instance const posturl = "http://localhost:4010/data/Slide/post" -const findurl = "http://localhost:4010/data/Slide/find?slide=TEST" +const findurl = "http://localhost:4010/data/Slide/find?name=TEST" describe('Slide Loading Step 1', function () { @@ -23,7 +23,7 @@ describe('Slide Loading Step 1', function () { body:JSON.stringify(slideData)}) postProcess.then(x=>x.json()).then(x=>{ console.log(x) - assert.equal(x.count,1, "Post Reported Successful") + assert.equal(x.result.ok,1, "Post Reported Successful") done() }).catch(e=>{ console.log("err") diff --git a/test/test_loader.js b/test/test_loader.js index ae50e467..5e71d5c7 100644 --- a/test/test_loader.js +++ b/test/test_loader.js @@ -6,7 +6,7 @@ const assert = require('assert'); const fetch = require("node-fetch") -const checkurl = "http://localhost:4010/load/Slide/info/sample.svs" +const checkurl = "http://localhost:4010/loader/data/one/sample.svs" describe('Sample Slide Metadata Check', function () { diff --git a/update_dockerhub.sh b/update_dockerhub.sh index b1686284..09eea39e 100644 --- a/update_dockerhub.sh +++ b/update_dockerhub.sh @@ -6,12 +6,6 @@ docker login docker-compose -f quip-pathdb.yml build docker-compose -f caMicroscope.yml build # tag and push images -docker tag distro_bindaas:latest camicroscope/bindaas:latest -docker push camicroscope/bindaas:latest -docker tag distro_security:latest camicroscope/security:latest -docker push camicroscope/security:latest -docker tag distro_auth:latest camicroscope/auth_service:latest -docker push camicroscope/auth_service:latest docker tag distro_imageloader:latest camicroscope/pathdb-imageloader:latest docker push camicroscope/pathdb-imageloader:latest docker tag distro_heatmaploader:latest camicroscope/pathdb-heatmaploader:latest @@ -20,4 +14,4 @@ docker tag distro_segloader:latest camicroscope/pathdb-segloader:latest docker push camicroscope/pathdb-segloader:latest docker tag distro_pathdb:latest camicroscope/pathdb:latest docker push camicroscope/pathdb:latest -# iip and slideloader are done on commit and tag +# iip, caracal, and slideloader are done on commit and tag diff --git a/user_docs.md b/user_docs.md deleted file mode 100644 index 940468aa..00000000 --- a/user_docs.md +++ /dev/null @@ -1,33 +0,0 @@ -# Using caMicroscope -caMicroscope is a tool to view, annotate, and analyze whole-slide, biomedical images. It manages digital pathology images, associated clinical and imaging metadata, and human/machine generated annotations and markups. - -## Selecing an Image -Depending on what is providing the image metadata, differnet login tecniques may be necessary. For public instances, no log in is necesary, and you can proceed to view slides. Use of other tools, such as annotations may or may not require login in this case. -For slim instances, login should be done through a redirect directly. For pathDB instances, login should be done on the login link on the main page. -At this point, select a collection, if applicable, and proceed to open or "view" the image of your choice. - -## Viewing an Image -Once an image is open, you can pan around the image by either clicking and dragging (when no conflicting tool, such as the pen, is open), or by moving the red bounding box in the viewport in the bottom right. -Zooming can be accomplished through the scroll wheel, pinch events on a touch screen, by using the zoom slider or its associated buttons, or by clicking on the zoom number and inputing a different number. - -## Using Tools -The toolbar is in the top-left of the main content window. Use the toolbar buttons to manipulate the slide. To close any toolbar button, click the same button again or a new button. - -| Tool | Name | Function | -| ----- |-------------| -----| -| | Annotations | Opens the Annotation panel, where you can select which annotation set to view, name that annotation set, add optional notes about the annotation set, save the annotation set, and reset the panel to its original state. | -| | Layer Manager | Opens the Layers Manager panel, where you can select which layers to view. | -| | Home | Return to the data table so that you can open another slide.| -| | Draw | Draw thin lines, thick lines, or polygons on the image. To maintain the integrity of measurements, avoid drawing shapes that overlap or intersect one another. | -| | Magnifier |The Magnifier works like a magnifying glass and allows you to see the slide at normal magnification (1.0), low magnification (0.5), or high magnification (2.0). Click a magnification level and place the bounding box on the area of the slide you want to magnify. | -| | Measurement | Drag this tool on the slide to learn the measurement in micrometers. | -| | Share View |Opens a window with a URL to the current presentation state of the slide including the magnification level, layers that are currently open, and your position on the image.| -| | Side by Side Viewer |Shows the Layer Manager panel, the left and right layers, and inset window. For the right and left layer, select which layer you want to view. | -| | Heatmap | For a slide with heatmap data, opens the choices of heatmaps available, as well as ways of displaying the heatmaps. The gradient shows all of the values on the selected spectrum for the field you selected. Contains a heatmap edit pen function.| -| | Labeling |Use this tool to draw a circle or rectangle around a tumor region, measure an area on the slide, download labels, and submit a bug report. The Labeling tool has its own toolbar with tools in the following order from left to right: return to the previous slide, place a square on the slide, place a circle on the slide, measure an area, download labels, and submit a bug report. Click the left arrow at the far right of the toolbar to hide it, then click the right arrow to show it. | -| | Segment | This tool allows you to display, count, and export nuclear segmentations on the image. Clicking this tool opens the following custom toolbar. | -| | Model | Show results from a pre-trained tensorflow compatible model on a ROI of the slide. | -| | Bug Report | Report a bug or give feedback. | - -## Credits -This guide has been adapted from the guide created for the SEER project by Carolyn Klinger.