{"action":"created","issue":{"url":"https://api.github.com/repos/vistadataproject/nodeVISTA/issues/57","repository_url":"https://api.github.com/repos/vistadataproject/nodeVISTA","labels_url":"https://api.github.com/repos/vistadataproject/nodeVISTA/issues/57/labels{/name}","comments_url":"https://api.github.com/repos/vistadataproject/nodeVISTA/issues/57/comments","events_url":"https://api.github.com/repos/vistadataproject/nodeVISTA/issues/57/events","html_url":"https://github.com/vistadataproject/nodeVISTA/issues/57","id":164214310,"number":57,"title":"RPC HTTPS Server with VPR and other RPC support","user":{"login":"conorcaregraf","id":1831390,"avatar_url":"https://avatars.githubusercontent.com/u/1831390?v=3","gravatar_id":"","url":"https://api.github.com/users/conorcaregraf","html_url":"https://github.com/conorcaregraf","followers_url":"https://api.github.com/users/conorcaregraf/followers","following_url":"https://api.github.com/users/conorcaregraf/following{/other_user}","gists_url":"https://api.github.com/users/conorcaregraf/gists{/gist_id}","starred_url":"https://api.github.com/users/conorcaregraf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/conorcaregraf/subscriptions","organizations_url":"https://api.github.com/users/conorcaregraf/orgs","repos_url":"https://api.github.com/users/conorcaregraf/repos","events_url":"https://api.github.com/users/conorcaregraf/events{/privacy}","received_events_url":"https://api.github.com/users/conorcaregraf/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"pcchanghawaii","id":5618884,"avatar_url":"https://avatars.githubusercontent.com/u/5618884?v=3","gravatar_id":"","url":"https://api.github.com/users/pcchanghawaii","html_url":"https://github.com/pcchanghawaii","followers_url":"https://api.github.com/users/pcchanghawaii/followers","following_url":"https://api.github.com/users/pcchanghawaii/following{/other_user}","gists_url":"https://api.github.com/users/pcchanghawaii/gists{/gist_id}","starred_url":"https://api.github.com/users/pcchanghawaii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pcchanghawaii/subscriptions","organizations_url":"https://api.github.com/users/pcchanghawaii/orgs","repos_url":"https://api.github.com/users/pcchanghawaii/repos","events_url":"https://api.github.com/users/pcchanghawaii/events{/privacy}","received_events_url":"https://api.github.com/users/pcchanghawaii/received_events","type":"User","site_admin":false},"assignees":[{"login":"pcchanghawaii","id":5618884,"avatar_url":"https://avatars.githubusercontent.com/u/5618884?v=3","gravatar_id":"","url":"https://api.github.com/users/pcchanghawaii","html_url":"https://github.com/pcchanghawaii","followers_url":"https://api.github.com/users/pcchanghawaii/followers","following_url":"https://api.github.com/users/pcchanghawaii/following{/other_user}","gists_url":"https://api.github.com/users/pcchanghawaii/gists{/gist_id}","starred_url":"https://api.github.com/users/pcchanghawaii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pcchanghawaii/subscriptions","organizations_url":"https://api.github.com/users/pcchanghawaii/orgs","repos_url":"https://api.github.com/users/pcchanghawaii/repos","events_url":"https://api.github.com/users/pcchanghawaii/events{/privacy}","received_events_url":"https://api.github.com/users/pcchanghawaii/received_events","type":"User","site_admin":false}],"milestone":null,"comments":2,"created_at":"2016-07-07T02:07:47Z","updated_at":"2016-07-27T22:44:47Z","closed_at":null,"body":"__BG__: ties together existing job server and RPC/VPR emulate work.\r\n\r\nModeled on [rpcJobServer](https://github.com/vistadataproject/nodeVISTA/blob/Issue_54_RPCBroker_server/interfaces/ewd/rpcJobServer.js) and [vdmQSS](https://github.com/vistadataproject/nodeVISTA/tree/Issue_54_RPCBroker_server/interfaces/vdmQSS), with:\r\n  * a directory for itself - __rpcHTTPSServer__ or __rpcHTTPSEmulateServer__ (let's decide once we decide what the broker server will be called ... rpcBrokerEmulateServer?)\r\n    * subdirectory with /imgs for screenshots of it working\r\n  * have job workers like  [rpcWorker-ewdq](https://github.com/vistadataproject/nodeVISTA/blob/master/interfaces/ewd/rpcWorker-ewdq.js) but this one will call into the RPC emulators, vprE and rpcE\r\n  * support calling emulations of problem RPCs AND VPR RPC (not allergies yet)\r\n    * have an \"RPC supported\" in rpcE\r\n    * have a \"VPR domain supported\" call in vprE\r\n  * VPR JSON will not be supported - ALWAYS call native VPR call if JSON option is chosen\r\n  * if unsupported RPC called or unsupported VPR domain called, use _localRPCRunner_ to call local code (ie/ support _traditional fallback_)\r\n  * put a test client - rpcEmulateTestClient.js - in the same directory - base on rpcClient\r\n    * and have trace like [this](https://github.com/vistadataproject/nodeVISTA/blob/Issue_54_RPCBroker_server/interfaces/rpcClient/TRACE_rpcJobServerClient.md)\r\n  * add a README on how to run it\r\n\r\nIssues:\r\n  * how to pass arguments - VPR and Problem RPC arguments are \"simple\" ... pass as a series of strings to express\r\n  * parse out and call rpcE and vprE\r\n\r\nSuggestion: do vprE, vpr RPC handling first as easier.\r\n\r\n__Important__: use __localRPCRunner__ when calling existing RPCs directly.\r\n\r\nif emulator doesn't support an RPC (ie rpcE.isSupported(rpcName) === false ...\r\n\r\n   * call with whatever arguments (rpcArgs) are passed over the web interface ... no checking or switching\r\n   * this runner is used in ALL our prototypes from [problems](https://github.com/vistadataproject/VDM/blob/master/prototypes/problems/rpcProblems-spec.js) right through Ed's nearly 100 tests including [this one](https://github.com/vistadataproject/VDM/blob/master/prototypes/med/rpc_read_ORWDX1_STCHANGE.js)\r\n\r\nSignature: function run(db, userId, rpcName, rpcArgs, division) and fix userId == 55 and division = 2957\r\n\r\nand it will _throw_ an error if an invalid/unregistered RPC is invoked. It will also throw errors if VISTA MUMPS exceptions so call in a try/catch.\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/vistadataproject/nodeVISTA/issues/comments/235744561","html_url":"https://github.com/vistadataproject/nodeVISTA/issues/57#issuecomment-235744561","issue_url":"https://api.github.com/repos/vistadataproject/nodeVISTA/issues/57","id":235744561,"user":{"login":"conorcaregraf","id":1831390,"avatar_url":"https://avatars.githubusercontent.com/u/1831390?v=3","gravatar_id":"","url":"https://api.github.com/users/conorcaregraf","html_url":"https://github.com/conorcaregraf","followers_url":"https://api.github.com/users/conorcaregraf/followers","following_url":"https://api.github.com/users/conorcaregraf/following{/other_user}","gists_url":"https://api.github.com/users/conorcaregraf/gists{/gist_id}","starred_url":"https://api.github.com/users/conorcaregraf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/conorcaregraf/subscriptions","organizations_url":"https://api.github.com/users/conorcaregraf/orgs","repos_url":"https://api.github.com/users/conorcaregraf/repos","events_url":"https://api.github.com/users/conorcaregraf/events{/privacy}","received_events_url":"https://api.github.com/users/conorcaregraf/received_events","type":"User","site_admin":false},"created_at":"2016-07-27T22:44:47Z","updated_at":"2016-07-27T22:44:47Z","body":"## Notes to ensure EWorker is \"dumb\" and simple\r\n\r\n1. the rpcE switch - should be \"dumb\"\r\n\r\nthe passthrough (to localRPCRunner) looks great but the rpcE call is hardcoded. Shouldn't it work like the passthrough, just taking the same arguments? No switch for  \"allergy\" vs \"problem\" etc? I think this code should be \"dumb\". \r\n\r\n```text\r\n           if no rpcE support -- localRPCRunner(...)\r\n           else rpcE.run(same arguments as runner)\r\n```\r\n\r\n2. VPR switch. \r\n\r\nVPR handling has two switches - does vprE support a domain (vprE.isDomainSupported) and JSON vs XML return forms. We will NOT EMULATE the JSON form. So if JSON is chosen, always use the native JSON support and vprE won't come into play.\r\n\r\nThe JSON entry point is vpr.query (vs vpr.queryXML)."}}
{"actor":{"display_login":"conorcaregraf"}}