@sassoftware/viya-serverjs 0.1.2 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (406) hide show
  1. package/.babelrc +6 -0
  2. package/.dockerignore +2 -0
  3. package/.env +29 -0
  4. package/.env.proxy +31 -0
  5. package/.env.server +29 -0
  6. package/.eslintignore +4 -0
  7. package/.eslintrc.json +42 -0
  8. package/Dockerfile +44 -0
  9. package/README.md +6 -4
  10. package/cli.js +9 -0
  11. package/images/viya-apiserverjs.png +0 -0
  12. package/lib/{core/config.js → config.js} +6 -25
  13. package/lib/handlers/appCallback.js +62 -0
  14. package/lib/handlers/codeAuth.js +61 -0
  15. package/lib/{core/handlers → handlers}/decodeJwt.js +1 -1
  16. package/lib/handlers/favicon.js +45 -0
  17. package/lib/handlers/getApp.js +77 -0
  18. package/lib/handlers/getApp2.js +48 -0
  19. package/lib/handlers/getUser.js +49 -0
  20. package/lib/{core/handlers → handlers}/index.js +1 -1
  21. package/lib/handlers/keepAlive.js +99 -0
  22. package/lib/handlers/keepAlive2.js +33 -0
  23. package/lib/handlers/logon.js +43 -0
  24. package/lib/handlers/logout.js +88 -0
  25. package/lib/handlers/proxyMapUri.js +76 -0
  26. package/lib/handlers/proxyOnResponse.js +26 -0
  27. package/lib/handlers/reactDev.js +52 -0
  28. package/lib/handlers/setCookies.js +112 -0
  29. package/lib/{core/iService.js → iService.js} +45 -30
  30. package/lib/index.js +184 -10
  31. package/lib/plugins/SASauth.js +101 -0
  32. package/lib/plugins/appCookie.js +99 -0
  33. package/lib/plugins/setContext.js +56 -0
  34. package/lib/plugins/setDefaultRoutes.js +248 -0
  35. package/lib/plugins/setupAuth.js +87 -0
  36. package/lib/{core/plugins → plugins}/setupUserRoutes.js +21 -12
  37. package/lib/plugins/token.js +31 -0
  38. package/lib/schemes/SASTokenScheme.js +71 -0
  39. package/package.json +56 -14
  40. package/packages/core/config.js +86 -0
  41. package/packages/core/handlers/appCallback.js +40 -0
  42. package/packages/core/handlers/codeAuth.js +31 -0
  43. package/packages/core/handlers/decodeJwt.js +11 -0
  44. package/packages/core/handlers/favicon.js +24 -0
  45. package/packages/core/handlers/getApp.js +41 -0
  46. package/packages/core/handlers/getApp2.js +26 -0
  47. package/packages/core/handlers/getUser.js +20 -0
  48. package/packages/core/handlers/index.js +36 -0
  49. package/packages/core/handlers/keepAlive.js +54 -0
  50. package/packages/core/handlers/keepAlive2.js +13 -0
  51. package/packages/core/handlers/logon.js +24 -0
  52. package/packages/core/handlers/logout.js +43 -0
  53. package/{lib → packages}/core/handlers/proxyMapUri.js +25 -36
  54. package/packages/core/handlers/proxyOnResponse.js +12 -0
  55. package/packages/core/handlers/reactDev.js +30 -0
  56. package/packages/core/handlers/setCookies.js +78 -0
  57. package/packages/core/iService.js +369 -0
  58. package/packages/core/index.js +249 -0
  59. package/packages/core/parseDocker.js +33 -0
  60. package/packages/core/plugins/SASauth.js +79 -0
  61. package/packages/core/plugins/appCookie.js +49 -0
  62. package/packages/core/plugins/setContext.js +34 -0
  63. package/packages/core/plugins/setDefaultRoutes.js +262 -0
  64. package/packages/core/plugins/setupAuth.js +48 -0
  65. package/packages/core/plugins/setupUserRoutes.js +48 -0
  66. package/packages/core/plugins/token.js +10 -0
  67. package/packages/core/schemes/SASTokenScheme.js +43 -0
  68. package/packages/core/visionIndex.html +24 -0
  69. package/packages/examples/apitest/.env +11 -0
  70. package/packages/examples/apitest/.eslintrc.json +42 -0
  71. package/packages/examples/apitest/Dockerfile +41 -0
  72. package/packages/examples/apitest/api.js +88 -0
  73. package/packages/examples/apitest/appenv.js +6 -0
  74. package/packages/examples/apitest/docker-compose.yml +10 -0
  75. package/packages/examples/apitest/package.json +19 -0
  76. package/packages/examples/apitest/public/data/Cluster_SDOH1.sas +182 -0
  77. package/packages/examples/apitest/public/data/Cluster_SDOH6.sas +180 -0
  78. package/packages/examples/apitest/public/data/LeNet_snzrle.astore +0 -0
  79. package/packages/examples/apitest/public/data/NeuralNetwork_High_med.sas +2409 -0
  80. package/packages/examples/apitest/public/data/NeuralNetwork_high_med1.sas +2409 -0
  81. package/packages/examples/apitest/public/data/ast/GBlocalcopy.sasast +0 -0
  82. package/packages/examples/apitest/public/data/ast/LeNet_snzrle.astore +0 -0
  83. package/packages/examples/apitest/public/data/ast/gb_IrisGB.sasast +0 -0
  84. package/packages/examples/apitest/public/data/ast/paysimsvdd.sasast +0 -0
  85. package/packages/examples/apitest/public/data/ast/svmlocalcopy.sasast +0 -0
  86. package/packages/examples/apitest/public/data/cars.csv +429 -0
  87. package/packages/examples/apitest/public/data/cluster_test2.sas7bdat +0 -0
  88. package/packages/examples/apitest/public/data/cmdList.txt +15 -0
  89. package/packages/examples/apitest/public/data/gradBoost.sashdat +0 -0
  90. package/packages/examples/apitest/public/data/iris.csv +151 -0
  91. package/packages/examples/apitest/public/data/model1.sas7bdat +0 -0
  92. package/packages/examples/apitest/public/favicon.ico +0 -0
  93. package/packages/examples/apitest/public/index.html +316 -0
  94. package/packages/examples/apitest/public/index2.html +102 -0
  95. package/packages/examples/apitest/public/logon.html +42 -0
  96. package/packages/examples/apitest/public/myapp/secondary.html +1 -0
  97. package/packages/examples/apitest/public/myapp/test.js +2 -0
  98. package/packages/examples/apitest/public/onlogoff.html +53 -0
  99. package/packages/examples/apitest/start.sh +15 -0
  100. package/packages/examples/app/.env +32 -0
  101. package/packages/examples/app/.envProxy +19 -0
  102. package/packages/examples/app/.envimpl +12 -0
  103. package/packages/examples/app/.eslintrc.json +42 -0
  104. package/packages/examples/app/Dockerfile +42 -0
  105. package/packages/examples/app/appenv.js +6 -0
  106. package/packages/examples/app/certs/ca.crt +19 -0
  107. package/packages/examples/app/certs/tls.crt +25 -0
  108. package/packages/examples/app/certs/tls.key +28 -0
  109. package/packages/examples/app/certs/tls.sh +5 -0
  110. package/packages/examples/app/docker-compose.yml +12 -0
  111. package/packages/examples/app/index.js +15 -0
  112. package/packages/examples/app/package.json +20 -0
  113. package/packages/examples/app/public/casread.html +324 -0
  114. package/packages/examples/app/public/data/Cluster_SDOH1.sas +182 -0
  115. package/packages/examples/app/public/data/Cluster_SDOH6.sas +180 -0
  116. package/packages/examples/app/public/data/LeNet_snzrle.astore +0 -0
  117. package/packages/examples/app/public/data/NeuralNetwork_High_med.sas +2409 -0
  118. package/packages/examples/app/public/data/NeuralNetwork_high_med1.sas +2409 -0
  119. package/packages/examples/app/public/data/ast/GBlocalcopy.sasast +0 -0
  120. package/packages/examples/app/public/data/ast/LeNet_snzrle.astore +0 -0
  121. package/packages/examples/app/public/data/ast/gb_IrisGB.sasast +0 -0
  122. package/packages/examples/app/public/data/ast/paysimsvdd.sasast +0 -0
  123. package/packages/examples/app/public/data/ast/svmlocalcopy.sasast +0 -0
  124. package/packages/examples/app/public/data/cars.csv +429 -0
  125. package/packages/examples/app/public/data/cluster_test2.sas7bdat +0 -0
  126. package/packages/examples/app/public/data/cmdList.txt +15 -0
  127. package/packages/examples/app/public/data/gradBoost.sashdat +0 -0
  128. package/packages/examples/app/public/data/iris.csv +151 -0
  129. package/packages/examples/app/public/data/model1.sas7bdat +0 -0
  130. package/packages/examples/app/public/favicon.ico +0 -0
  131. package/packages/examples/app/public/index.html +332 -0
  132. package/packages/examples/app/public/indexProxy.html +346 -0
  133. package/packages/examples/app/public/indextest.html +316 -0
  134. package/packages/examples/app/public/logon.html +44 -0
  135. package/packages/examples/app/public/micburger.html +345 -0
  136. package/packages/examples/app/public/micburger.txt.html +311 -0
  137. package/packages/examples/app/public/myapp/secondary.html +1 -0
  138. package/packages/examples/app/public/myapp/test.js +2 -0
  139. package/packages/examples/app/public/sara.txt +345 -0
  140. package/packages/examples/app/public/testva2.html +311 -0
  141. package/packages/examples/app/startup.sh +15 -0
  142. package/packages/examples/appdocker/.env +21 -0
  143. package/packages/examples/appdocker/.envProxy +22 -0
  144. package/packages/examples/appdocker/.envimpl +12 -0
  145. package/packages/examples/appdocker/.eslintrc.json +42 -0
  146. package/packages/examples/appdocker/Dockerfile +43 -0
  147. package/packages/examples/appdocker/appenv.js +6 -0
  148. package/packages/examples/appdocker/certs/ca.crt +19 -0
  149. package/packages/examples/appdocker/certs/tls.crt +25 -0
  150. package/packages/examples/appdocker/certs/tls.key +28 -0
  151. package/packages/examples/appdocker/certs/tls.sh +5 -0
  152. package/packages/examples/appdocker/docker-compose.yml +12 -0
  153. package/packages/examples/appdocker/index.js +15 -0
  154. package/packages/examples/appdocker/package.json +20 -0
  155. package/packages/examples/appdocker/public/data/Cluster_SDOH1.sas +182 -0
  156. package/packages/examples/appdocker/public/data/Cluster_SDOH6.sas +180 -0
  157. package/packages/examples/appdocker/public/data/LeNet_snzrle.astore +0 -0
  158. package/packages/examples/appdocker/public/data/NeuralNetwork_High_med.sas +2409 -0
  159. package/packages/examples/appdocker/public/data/NeuralNetwork_high_med1.sas +2409 -0
  160. package/packages/examples/appdocker/public/data/ast/GBlocalcopy.sasast +0 -0
  161. package/packages/examples/appdocker/public/data/ast/LeNet_snzrle.astore +0 -0
  162. package/packages/examples/appdocker/public/data/ast/gb_IrisGB.sasast +0 -0
  163. package/packages/examples/appdocker/public/data/ast/paysimsvdd.sasast +0 -0
  164. package/packages/examples/appdocker/public/data/ast/svmlocalcopy.sasast +0 -0
  165. package/packages/examples/appdocker/public/data/cars.csv +429 -0
  166. package/packages/examples/appdocker/public/data/cluster_test2.sas7bdat +0 -0
  167. package/packages/examples/appdocker/public/data/cmdList.txt +15 -0
  168. package/packages/examples/appdocker/public/data/gradBoost.sashdat +0 -0
  169. package/packages/examples/appdocker/public/data/iris.csv +151 -0
  170. package/packages/examples/appdocker/public/data/model1.sas7bdat +0 -0
  171. package/packages/examples/appdocker/public/favicon.ico +0 -0
  172. package/packages/examples/appdocker/public/index.html +346 -0
  173. package/packages/examples/appdocker/public/indexProxy.html +346 -0
  174. package/packages/examples/appdocker/public/indextest.html +316 -0
  175. package/packages/examples/appdocker/public/logon.html +44 -0
  176. package/packages/examples/appdocker/public/myapp/secondary.html +1 -0
  177. package/packages/examples/appdocker/public/myapp/test.js +2 -0
  178. package/packages/examples/appdocker/startup.sh +15 -0
  179. package/packages/examples/apptest/.env +28 -0
  180. package/packages/examples/apptest/.envProxy +22 -0
  181. package/packages/examples/apptest/.envimpl +12 -0
  182. package/packages/examples/apptest/.eslintrc.json +42 -0
  183. package/packages/examples/apptest/Dockerfile +44 -0
  184. package/packages/examples/apptest/appDir/app1/design.html +350 -0
  185. package/packages/examples/apptest/appDir/app1/index.html +353 -0
  186. package/packages/examples/apptest/appDir/index.html +350 -0
  187. package/packages/examples/apptest/appenv.js +6 -0
  188. package/packages/examples/apptest/docker-compose.yml +12 -0
  189. package/packages/examples/apptest/index.js +444 -0
  190. package/packages/examples/apptest/package.json +24 -0
  191. package/packages/examples/apptest/public/casread2.html +321 -0
  192. package/packages/examples/apptest/public/data/Cluster_SDOH1.sas +182 -0
  193. package/packages/examples/apptest/public/data/Cluster_SDOH6.sas +180 -0
  194. package/packages/examples/apptest/public/data/LeNet_snzrle.astore +0 -0
  195. package/packages/examples/apptest/public/data/NeuralNetwork_High_med.sas +2409 -0
  196. package/packages/examples/apptest/public/data/NeuralNetwork_high_med1.sas +2409 -0
  197. package/packages/examples/apptest/public/data/ast/GBlocalcopy.sasast +0 -0
  198. package/packages/examples/apptest/public/data/ast/LeNet_snzrle.astore +0 -0
  199. package/packages/examples/apptest/public/data/ast/gb_IrisGB.sasast +0 -0
  200. package/packages/examples/apptest/public/data/ast/paysimsvdd.sasast +0 -0
  201. package/packages/examples/apptest/public/data/ast/svmlocalcopy.sasast +0 -0
  202. package/packages/examples/apptest/public/data/cars.csv +429 -0
  203. package/packages/examples/apptest/public/data/cluster_test2.sas7bdat +0 -0
  204. package/packages/examples/apptest/public/data/cmdList.txt +15 -0
  205. package/packages/examples/apptest/public/data/gradBoost.sashdat +0 -0
  206. package/packages/examples/apptest/public/data/iris.csv +151 -0
  207. package/packages/examples/apptest/public/data/model1.sas7bdat +0 -0
  208. package/packages/examples/apptest/public/design.html +349 -0
  209. package/packages/examples/apptest/public/favicon.ico +0 -0
  210. package/packages/examples/apptest/public/help.html +1 -0
  211. package/packages/examples/apptest/public/index.html +353 -0
  212. package/packages/examples/apptest/public/index2.html +353 -0
  213. package/packages/examples/apptest/public/indexProxy.html +346 -0
  214. package/packages/examples/apptest/public/indextest.html +316 -0
  215. package/packages/examples/apptest/public/logon.html +44 -0
  216. package/packages/examples/apptest/public/myapp/q.html +349 -0
  217. package/packages/examples/apptest/public/myapp/secondary.html +1 -0
  218. package/packages/examples/apptest/public/myapp/test.js +2 -0
  219. package/packages/examples/apptest/public/push1.html +187 -0
  220. package/packages/examples/apptest/startup.sh +15 -0
  221. package/packages/examples/apptesti/.env +13 -0
  222. package/packages/examples/apptesti/.eslintrc.json +42 -0
  223. package/packages/examples/apptesti/Dockerfile +42 -0
  224. package/packages/examples/apptesti/appenv.js +6 -0
  225. package/packages/examples/apptesti/certs/ca.crt +19 -0
  226. package/packages/examples/apptesti/certs/tls.crt +25 -0
  227. package/packages/examples/apptesti/certs/tls.key +28 -0
  228. package/packages/examples/apptesti/certs/tls.sh +5 -0
  229. package/packages/examples/apptesti/docker-compose.yml +12 -0
  230. package/{lib/cli.js → packages/examples/apptesti/index.js} +4 -6
  231. package/packages/examples/apptesti/package.json +20 -0
  232. package/packages/examples/apptesti/public/data/Cluster_SDOH1.sas +182 -0
  233. package/packages/examples/apptesti/public/data/Cluster_SDOH6.sas +180 -0
  234. package/packages/examples/apptesti/public/data/LeNet_snzrle.astore +0 -0
  235. package/packages/examples/apptesti/public/data/NeuralNetwork_High_med.sas +2409 -0
  236. package/packages/examples/apptesti/public/data/NeuralNetwork_high_med1.sas +2409 -0
  237. package/packages/examples/apptesti/public/data/ast/GBlocalcopy.sasast +0 -0
  238. package/packages/examples/apptesti/public/data/ast/LeNet_snzrle.astore +0 -0
  239. package/packages/examples/apptesti/public/data/ast/gb_IrisGB.sasast +0 -0
  240. package/packages/examples/apptesti/public/data/ast/paysimsvdd.sasast +0 -0
  241. package/packages/examples/apptesti/public/data/ast/svmlocalcopy.sasast +0 -0
  242. package/packages/examples/apptesti/public/data/cars.csv +429 -0
  243. package/packages/examples/apptesti/public/data/cluster_test2.sas7bdat +0 -0
  244. package/packages/examples/apptesti/public/data/cmdList.txt +15 -0
  245. package/packages/examples/apptesti/public/data/gradBoost.sashdat +0 -0
  246. package/packages/examples/apptesti/public/data/iris.csv +151 -0
  247. package/packages/examples/apptesti/public/data/model1.sas7bdat +0 -0
  248. package/packages/examples/apptesti/public/favicon.ico +0 -0
  249. package/packages/examples/apptesti/public/index.html +346 -0
  250. package/packages/examples/apptesti/public/indexProxy.html +346 -0
  251. package/packages/examples/apptesti/public/indextest.html +316 -0
  252. package/packages/examples/apptesti/public/logon.html +44 -0
  253. package/packages/examples/apptesti/public/main.html +346 -0
  254. package/packages/examples/apptesti/public/myapp/secondary.html +1 -0
  255. package/packages/examples/apptesti/public/myapp/test.js +2 -0
  256. package/packages/examples/apptesti/startup.sh +15 -0
  257. package/packages/examples/basic/.env +10 -0
  258. package/packages/examples/basic/.eslintrc.json +42 -0
  259. package/packages/examples/basic/Dockerfile +41 -0
  260. package/packages/examples/basic/api.js +88 -0
  261. package/packages/examples/basic/appenv.js +6 -0
  262. package/packages/examples/basic/docker-compose.yml +10 -0
  263. package/packages/examples/basic/package.json +19 -0
  264. package/packages/examples/basic/public/data/Cluster_SDOH1.sas +182 -0
  265. package/packages/examples/basic/public/data/Cluster_SDOH6.sas +180 -0
  266. package/packages/examples/basic/public/data/LeNet_snzrle.astore +0 -0
  267. package/packages/examples/basic/public/data/NeuralNetwork_High_med.sas +2409 -0
  268. package/packages/examples/basic/public/data/NeuralNetwork_high_med1.sas +2409 -0
  269. package/packages/examples/basic/public/data/ast/GBlocalcopy.sasast +0 -0
  270. package/packages/examples/basic/public/data/ast/LeNet_snzrle.astore +0 -0
  271. package/packages/examples/basic/public/data/ast/gb_IrisGB.sasast +0 -0
  272. package/packages/examples/basic/public/data/ast/paysimsvdd.sasast +0 -0
  273. package/packages/examples/basic/public/data/ast/svmlocalcopy.sasast +0 -0
  274. package/packages/examples/basic/public/data/cars.csv +429 -0
  275. package/packages/examples/basic/public/data/cluster_test2.sas7bdat +0 -0
  276. package/packages/examples/basic/public/data/cmdList.txt +15 -0
  277. package/packages/examples/basic/public/data/gradBoost.sashdat +0 -0
  278. package/packages/examples/basic/public/data/iris.csv +151 -0
  279. package/packages/examples/basic/public/data/model1.sas7bdat +0 -0
  280. package/packages/examples/basic/public/favicon.ico +0 -0
  281. package/packages/examples/basic/public/index.html +29 -0
  282. package/packages/examples/basic/public/index2.html +102 -0
  283. package/packages/examples/basic/public/logon.html +42 -0
  284. package/packages/examples/basic/public/myapp/secondary.html +1 -0
  285. package/packages/examples/basic/public/myapp/test.js +2 -0
  286. package/packages/examples/basic/public/onlogoff.html +53 -0
  287. package/packages/examples/basic/start.sh +15 -0
  288. package/packages/examples/proxytest/.env +23 -0
  289. package/packages/examples/proxytest/.envimpl +11 -0
  290. package/packages/examples/proxytest/.eslintrc.json +42 -0
  291. package/packages/examples/proxytest/Dockerfile +42 -0
  292. package/packages/examples/proxytest/appenv.js +6 -0
  293. package/packages/examples/proxytest/docker-compose.yml +12 -0
  294. package/packages/examples/proxytest/index.js +57 -0
  295. package/packages/examples/proxytest/package.json +18 -0
  296. package/packages/examples/proxytest/public/data/Cluster_SDOH1.sas +182 -0
  297. package/packages/examples/proxytest/public/data/Cluster_SDOH6.sas +180 -0
  298. package/packages/examples/proxytest/public/data/LeNet_snzrle.astore +0 -0
  299. package/packages/examples/proxytest/public/data/NeuralNetwork_High_med.sas +2409 -0
  300. package/packages/examples/proxytest/public/data/NeuralNetwork_high_med1.sas +2409 -0
  301. package/packages/examples/proxytest/public/data/ast/GBlocalcopy.sasast +0 -0
  302. package/packages/examples/proxytest/public/data/ast/LeNet_snzrle.astore +0 -0
  303. package/packages/examples/proxytest/public/data/ast/gb_IrisGB.sasast +0 -0
  304. package/packages/examples/proxytest/public/data/ast/paysimsvdd.sasast +0 -0
  305. package/packages/examples/proxytest/public/data/ast/svmlocalcopy.sasast +0 -0
  306. package/packages/examples/proxytest/public/data/cars.csv +429 -0
  307. package/packages/examples/proxytest/public/data/cluster_test2.sas7bdat +0 -0
  308. package/packages/examples/proxytest/public/data/cmdList.txt +15 -0
  309. package/packages/examples/proxytest/public/data/gradBoost.sashdat +0 -0
  310. package/packages/examples/proxytest/public/data/iris.csv +151 -0
  311. package/packages/examples/proxytest/public/data/model1.sas7bdat +0 -0
  312. package/packages/examples/proxytest/public/favicon.ico +0 -0
  313. package/packages/examples/proxytest/public/index.html +357 -0
  314. package/packages/examples/proxytest/public/index.js +57 -0
  315. package/packages/examples/proxytest/public/indextest.html +316 -0
  316. package/packages/examples/proxytest/public/logon.html +44 -0
  317. package/packages/examples/proxytest/public/main.html +357 -0
  318. package/packages/examples/proxytest/public/myapp/secondary.html +1 -0
  319. package/packages/examples/proxytest/public/myapp/test.js +2 -0
  320. package/packages/examples/proxytest/public/restaf.js +2461 -0
  321. package/packages/examples/proxytest/public/restaf.min.js +11 -0
  322. package/packages/examples/proxytest/public/sas/iris.txt +10 -0
  323. package/packages/examples/proxytest/startup.sh +15 -0
  324. package/public/casread2.html +321 -0
  325. package/public/data/Cluster_SDOH1.sas +182 -0
  326. package/public/data/Cluster_SDOH6.sas +180 -0
  327. package/public/data/LeNet_snzrle.astore +0 -0
  328. package/public/data/NeuralNetwork_High_med.sas +2409 -0
  329. package/public/data/NeuralNetwork_high_med1.sas +2409 -0
  330. package/public/data/ast/GBlocalcopy.sasast +0 -0
  331. package/public/data/ast/LeNet_snzrle.astore +0 -0
  332. package/public/data/ast/gb_IrisGB.sasast +0 -0
  333. package/public/data/ast/paysimsvdd.sasast +0 -0
  334. package/public/data/ast/svmlocalcopy.sasast +0 -0
  335. package/public/data/cars.csv +429 -0
  336. package/public/data/cluster_test2.sas7bdat +0 -0
  337. package/public/data/cmdList.txt +15 -0
  338. package/public/data/gradBoost.sashdat +0 -0
  339. package/public/data/iris.csv +151 -0
  340. package/public/data/model1.sas7bdat +0 -0
  341. package/public/design.html +350 -0
  342. package/public/display.html +354 -0
  343. package/public/favicon.ico +0 -0
  344. package/public/help.html +1 -0
  345. package/public/index.html +354 -0
  346. package/public/index2.html +353 -0
  347. package/public/indexProxy.html +350 -0
  348. package/public/indextest.html +316 -0
  349. package/public/logon.html +44 -0
  350. package/public/myapp/q.html +349 -0
  351. package/public/myapp/secondary.html +1 -0
  352. package/public/myapp/test.js +2 -0
  353. package/public/push1.html +187 -0
  354. package/server.js +474 -0
  355. package/src/config.js +90 -0
  356. package/src/handlers/appCallback.js +40 -0
  357. package/src/handlers/codeAuth.js +31 -0
  358. package/src/handlers/decodeJwt.js +11 -0
  359. package/src/handlers/favicon.js +24 -0
  360. package/src/handlers/getApp.js +52 -0
  361. package/src/handlers/getApp2.js +26 -0
  362. package/src/handlers/getUser.js +20 -0
  363. package/src/handlers/index.js +36 -0
  364. package/src/handlers/keepAlive.js +54 -0
  365. package/src/handlers/keepAlive2.js +13 -0
  366. package/src/handlers/logon.js +24 -0
  367. package/src/handlers/logout.js +43 -0
  368. package/src/handlers/proxyMapUri.js +53 -0
  369. package/src/handlers/proxyOnResponse.js +12 -0
  370. package/src/handlers/reactDev.js +30 -0
  371. package/src/handlers/setCookies.js +78 -0
  372. package/src/iService.js +369 -0
  373. package/src/index.js +249 -0
  374. package/src/parseDocker.js +32 -0
  375. package/src/plugins/SASauth.js +79 -0
  376. package/src/plugins/appCookie.js +49 -0
  377. package/src/plugins/setContext.js +34 -0
  378. package/src/plugins/setDefaultRoutes.js +260 -0
  379. package/src/plugins/setupAuth.js +48 -0
  380. package/src/plugins/setupUserRoutes.js +48 -0
  381. package/src/plugins/token.js +10 -0
  382. package/src/schemes/SASTokenScheme.js +43 -0
  383. package/src/visionIndex.html +24 -0
  384. package/start.sh +15 -0
  385. package/lib/core/handlers/appCallback.js +0 -51
  386. package/lib/core/handlers/codeAuth.js +0 -61
  387. package/lib/core/handlers/favicon.js +0 -45
  388. package/lib/core/handlers/getApp.js +0 -67
  389. package/lib/core/handlers/getApp2.js +0 -48
  390. package/lib/core/handlers/getUser.js +0 -49
  391. package/lib/core/handlers/keepAlive.js +0 -96
  392. package/lib/core/handlers/keepAlive2.js +0 -33
  393. package/lib/core/handlers/logon.js +0 -44
  394. package/lib/core/handlers/logout.js +0 -88
  395. package/lib/core/handlers/proxyOnResponse.js +0 -26
  396. package/lib/core/handlers/reactDev.js +0 -52
  397. package/lib/core/handlers/setCookies.js +0 -116
  398. package/lib/core/index.js +0 -195
  399. package/lib/core/plugins/SASauth.js +0 -100
  400. package/lib/core/plugins/appCookie.js +0 -98
  401. package/lib/core/plugins/setContext.js +0 -55
  402. package/lib/core/plugins/setDefaultRoutes.js +0 -239
  403. package/lib/core/plugins/setupAuth.js +0 -86
  404. package/lib/core/plugins/token.js +0 -31
  405. package/lib/core/schemes/SASTokenScheme.js +0 -71
  406. /package/lib/{core/parseDocker.js → parseDocker.js} +0 -0
@@ -0,0 +1,2 @@
1
+ let hello ='hello';
2
+ console.log(hello);
@@ -0,0 +1,187 @@
1
+ <html lang="en"><head>
2
+ <meta charset="utf-8">
3
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
4
+ <title>appBuilder</title>
5
+
6
+ <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
7
+ <script src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
8
+ <script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
9
+ <script async="" src="https://cdn.developer.sas.com/packages/va-report-components/latest/dist/umd/va-report-components.js"></script>
10
+
11
+ <script type="text/javascript" src="https://unpkg.com/@sassoftware/react-app-builder"></script>
12
+
13
+ <script type="text/javascript" src="https://unpkg.com/@sassoftware/smart-controls-mui"></script>
14
+ <script>
15
+ debugger;
16
+ let LOGONPAYLOAD = {
17
+ host: "https://viya.kumar-zv1-azure-nginx-84560a6e.unx.sas.com",
18
+ authType: "server",
19
+ appName: "appBuilder",
20
+ };
21
+ const urlParams = new URLSearchParams(window.location.search);
22
+ debugger;
23
+ console.log(urlParams);
24
+ let APPENV={};
25
+ urlParams.forEach((value, key) => {
26
+ console.log(key, value);
27
+ APPENV[key.toUpperCase()] = value;
28
+ })
29
+ if (APPENV.HOST != null) {
30
+ LOGONPAYLOAD.host = APPENV.HOST;
31
+ }
32
+ let USERCONTROLS = {
33
+ controls: smartControls.controls,
34
+ defaultControls: {
35
+ numeric: 'Input',
36
+ char: 'InputText',
37
+ }
38
+ };
39
+ let userData = {};
40
+
41
+ let APPCONFIG = {
42
+ sasServer: "viya",
43
+ source: "cas",
44
+ saveLocation: 'local',/* only valid value is 'local'. github is coming */
45
+ logonPayload: LOGONPAYLOAD, /* logon information or null */
46
+ computeContext: "",
47
+ sessionID: null, /* an existing sessionID or null - for react component scenario*/
48
+ table: null, /* only for building forms for a table */
49
+ model: null, /* only for building forms for a model */
50
+ callbacks: null,
51
+ proxyServer: null,
52
+ passContext: "YES",
53
+ userData: {},
54
+ USERCONTROLS: "https://unpkg.com/@sassoftware/smart-controls-mui",
55
+ USERCONTROLSVAR: "smartControls",
56
+ USERCONTROLSPACKAGE: "@sassoftware/smart-controls-mui",
57
+ };
58
+ </script>
59
+ <script type="text/babel">
60
+ function _display(viewMode) {
61
+ console.log(reactAppBuilder);
62
+ let MAINENTRY=(viewMode === 'design') ? reactAppBuilder.DesignApp : reactAppBuilder.DisplayApp;
63
+ const createRoot = ReactDOM.createRoot;
64
+ const container = document.getElementById('container1');
65
+ const root = createRoot(container);
66
+ let style = {};
67
+ root.render(
68
+ <MAINENTRY form={FORM} userControls={USERCONTROLS} appConfig={APPCONFIG} htmlTemplate={PAGESOURCE} style={style}/>
69
+ );
70
+ }
71
+ </script>
72
+
73
+ <script>
74
+ function _setup (viewMode) {
75
+ _display(viewMode);
76
+ }
77
+
78
+ </script>
79
+
80
+ <!--------------------------------------------------------------------------------------------------->
81
+ <!-- PAGESOURCE is used as the html for the output -------------------------------------------------->
82
+ <!-- By default this uses the current html --------------------------------------------------------->
83
+ <!-- You can replace PAGESOURCE with your custom HTML ----------------------------------------------->
84
+ <!--------------------------------------------------------------------------------------------------->
85
+
86
+ <script>
87
+ let PAGESOURCE = document.documentElement.outerHTML;
88
+ </script></head>
89
+ <body onload="_display('design')">
90
+ <script type="text/javascript">
91
+ function getForm() {
92
+ return { version:1,
93
+ label:"push1.form",
94
+ viewType:"form",
95
+ source:"cas",
96
+ table:null,
97
+ byvars:[ ],
98
+ preamble:null,
99
+ sessionID:null,
100
+ userSessionID:null,
101
+ servers:null,
102
+ computeContext:"SAS Job Execution compute context",
103
+ casServerName:"cas-shared-default",
104
+ serverContext:undefined,
105
+ initialFetch:{ qs:{ start:0,
106
+ limit:1,
107
+ format:false,
108
+ where:"",
109
+ includeIndex:true } },
110
+ customColumns:{ _c1:{ Column:"_c1",
111
+ Label:"_c1",
112
+ Type:"number",
113
+ FormattedLength:12,
114
+ value:0 } },
115
+ editControl:{ autoSave:true,
116
+ autoSaveTable:true,
117
+ handlers:{ initApp:async (appEnv) => {
118
+ return {
119
+ statusCode: 0,
120
+ msg: ' '
121
+ };
122
+ },
123
+ init:async (data, rowno, appEnv) => data,
124
+ main:async (data, rowno, appEnv) => data,
125
+ term:async (data, rowno, appEnv) => data } },
126
+ viewerOptions:{ show:[ ],
127
+ drop:[ ],
128
+ disabled:[ "_index_" ],
129
+ cellStyles:{},
130
+ userMenus:{},
131
+ domLayout:"autoHeight",
132
+ agGridTheme:"ag-theme-alpine-custom" },
133
+ formControl:{ version:"v3",
134
+ status:"saved",
135
+ drop:[ ],
136
+ show:[ ],
137
+ defaultComponent:"Input",
138
+ itemCounter:1,
139
+ currentItems:[ "_c1" ],
140
+ items:[ { x:60,
141
+ y:62.727272033691406,
142
+ width:200,
143
+ height:30,
144
+ backgroundColor:"none",
145
+ touchAction:"None",
146
+ zIndex:2,
147
+ position:"absolute",
148
+ id:1,
149
+ name:"_c1" } ],
150
+ visuals:[ { id:1,
151
+ name:"_c1",
152
+ component:"Input",
153
+ label:"Input",
154
+ hide:false,
155
+ custom:true,
156
+ props:{ name:"_c1",
157
+ type:"number",
158
+ value:0,
159
+ label:"_c1",
160
+ length:12,
161
+ dataProps:"",
162
+ onEdit:"",
163
+ props:"{ name:\" \",\n label:\"\",\n align:\"right\" }",
164
+ "export":false,
165
+ visible:true,
166
+ handlerType:"sync",
167
+ handlers:{ props:(data,name, row, appEnv) => {return { name:" ",
168
+ label:"",
169
+ align:"right" };},
170
+ dataProps:null,
171
+ onEdit:null } },
172
+ propDetails:{},
173
+ grow:"horizontal" } ],
174
+ style:{ height:761.491455078125,
175
+ width:906.3635864257812,
176
+ overflow:"hidden",
177
+ border:"1px",
178
+ resize:"both",
179
+ borderStyle:"solid",
180
+ borderColor:"black" } } }};
181
+ </script>
182
+ <script>
183
+ let FORM=getForm();
184
+ // let MAINENTRY=reactAppBuilder.DesignApp;
185
+ </script>
186
+ <div id="container1" class="main" > </div>
187
+ </body></html>
@@ -0,0 +1,15 @@
1
+ #
2
+ # Azure wants to prefix the app env
3
+ # Use this to set the env that this server expects
4
+
5
+ # https://docs.microsoft.com/en-us/azure/app-service/reference-app-settings?tabs=kudu%2Cdotnet
6
+ env | grep APPSETTING_
7
+
8
+ if [[ ! -z "$APPSETTING_VIYA_SERVER" ]];
9
+ then
10
+ export VIYA_SERVER=$APPSETTING_VIYA_SERVER
11
+ echo VIYA SERVER= $VIYA_SERVER
12
+ else
13
+ echo "No custom application overrides"
14
+ fi
15
+ node index.js
@@ -0,0 +1,13 @@
1
+ VIYA_SERVER=
2
+
3
+ APPHOST=localhost
4
+ APPPORT=8080
5
+ AUTHFLOW=implicit
6
+ APPNAME=frameapp
7
+ CLIENTID=frameappi
8
+ APPENTRY=index.html
9
+ REDIRECT_ENTRY=main.html
10
+ CLIENTSECRET=
11
+ # USETOKEN=NO
12
+ # NAMESPACE=viya
13
+
@@ -0,0 +1,42 @@
1
+ {
2
+ "root": true,
3
+ "env": {
4
+ "browser": true,
5
+ "node": true,
6
+ "es6": true
7
+ },
8
+ "parser": "@babel/eslint-parser",
9
+ "extends": ["eslint:recommended", "prettier"],
10
+ "parserOptions": {
11
+ "requireConfigFile": false,
12
+ "babelOptions": {"configFile": "./.babelrc"},
13
+ "ecmaVersion": 6,
14
+ "sourceType": "module",
15
+ "ecmaFeatures": {
16
+ "jsx": true
17
+ }
18
+ },
19
+ "rules": {
20
+ "key-spacing": [
21
+ 2,
22
+ {
23
+ "align": "colon"
24
+ }
25
+ ],
26
+ "jsx-quotes": [2, "prefer-double"],
27
+ "no-console": 0,
28
+ "no-unused-vars": [
29
+ 1,
30
+ {
31
+ "args": "none"
32
+ }
33
+ ],
34
+ "no-debugger": 0,
35
+ "react/prop-types": 0,
36
+ "array-bracket-spacing": [2, "never"],
37
+ "space-in-parens": [2, "never"],
38
+ "space-before-function-paren": [2, "always"],
39
+ "semi": [2, "always"],
40
+ "no-prototype-builtins": 0
41
+ }
42
+ }
@@ -0,0 +1,42 @@
1
+ FROM node:12.16.1-alpine
2
+ LABEL maintainer="deva.kumar@sas.com"
3
+ WORKDIR /usr/src/app
4
+ COPY . .
5
+ # COPY package*.json ./
6
+ RUN npm install
7
+ # RUN npm run build
8
+
9
+ # will auto change to localhost in non-docker environments
10
+ ENV APPHOST=0.0.0.0
11
+ ENV PORT=8080
12
+ EXPOSE $PORT
13
+ #######################################################################
14
+ # You can override these(but in container leave APPHOST as shown below)
15
+ ########################################################################
16
+
17
+ # set this the same as EXPOSE here and override in env or as -p option in dockerrun
18
+ # ENV APPPORT=8080
19
+
20
+ ENV APPNAME=viyaapp
21
+ # ENV AUTHFLOW=code
22
+ # ENV CLIENTID=clientapp
23
+ # ENV CLIENTSECRET=secret
24
+ # ENV HAPIDEBUG=YES
25
+ # ENV LOGLEVEL=info
26
+ # ENV USETOKEN=YES
27
+
28
+ #sample setup for creating a temporary cert and key
29
+ ENV TLS_CREATE="C:US,ST:NC,L:Cary,O:SAS Institute,OU:STO,CN:localhost"
30
+
31
+ # You can specify your own cet and key
32
+ # ENV TLS_CERT=../../../certs/cert64.cer
33
+ # ENV TLS_KEY=../../../certs/pubkey64.pem
34
+
35
+ # Samesite specification
36
+ ENV SAMESITE=None,secure
37
+
38
+ # If your Viya instance still has a unsigned certificate set this value prior to invoking the server
39
+ ENV NODE_TLS_REJECT_UNAUTHORIZED=0
40
+
41
+ #####################################################################
42
+ CMD ["npm", "run", "indocker"]
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ let app = {
3
+ x: 1
4
+ };
5
+ return app;
6
+
@@ -0,0 +1,19 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDIjCCAgqgAwIBAgIIXK9uCGkAZEcwDQYJKoZIhvcNAQELBQAwLzEtMCsGA1UE
3
+ AxMkU0FTIFZpeWEgb3BlbnNzbCBSb290IENBIENlcnRpZmljYXRlMB4XDTIzMDkw
4
+ NTEyMTE1M1oXDTI4MDkwNDEyMjY1M1owLzEtMCsGA1UEAxMkU0FTIFZpeWEgb3Bl
5
+ bnNzbCBSb290IENBIENlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
6
+ MIIBCgKCAQEAosmo1/yW04reIhucI7PXSjnRdYioQUWI62f2ohaW6hARgUhT1HUx
7
+ 93LCpSq8zpgRuHAfAtNgeCKIKhM+GIDSqiNxsHAVljblrIKiS0lPfPmV0NFE2FMF
8
+ eUtQldqEjGOeYH4Wf6AR/hDr1X1ar0nbzJU/GoNA5yvV8Quk4aZsM6slnkm9jmwu
9
+ 7AyCyT+Ms6CMFBuWR17+tf/H4Sacyp0GX9kpNKtWZ6eSUn/vzsFG6gyqbxWUwcAk
10
+ bTXX6EyP1STtHiQ4xEKO2DkYDFKt8rFkKouCybH/iFwszMfs40AGzsOldj8CqECe
11
+ R3eem5Lyz7bK9HO9AwrAK4dg6qiQNBThCQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
12
+ AqQwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUlRRx1PVwUxylneMHIE69ttRL
13
+ OFgwDQYJKoZIhvcNAQELBQADggEBACb6bxKMjfnj3rN2teZVl3mV4kVWV9bewIiU
14
+ mFHrXIqvEhO2BsZoMNz27xQ2WmiwVgZiCb7QEYclx0ypTuEMiJAyaJZG5ogMy292
15
+ KhPvEqj+suTEKBIdsNc6IliuC+/Wfd0u45w/2sIGQi9ySo1oNyB6QeBaja0PHb5w
16
+ 1JiXTk0wnYOhaPu+0J4mGvSwOmMcFkJpur40NjBWAjenPxnMGrBCjA/KTCaqEQ+O
17
+ lMiQHt7J7rJrPhAs3uA4hxhDR+CbaWIxPUNrHkbZzakMiUpw8RVdY3U5bYrjc6fV
18
+ +x1hJWiqRW4CDMCwmaD0byL95og9vBL7si78NUsP8MnecGdqWAE=
19
+ -----END CERTIFICATE-----
@@ -0,0 +1,25 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIEJzCCAw+gAwIBAgIIa5XRpEFkiJowDQYJKoZIhvcNAQELBQAwLzEtMCsGA1UE
3
+ AxMkU0FTIFZpeWEgb3BlbnNzbCBSb290IENBIENlcnRpZmljYXRlMB4XDTIzMTAx
4
+ NDEwNTE1OVoXDTI1MTAxMzExMDY1OVowHjEcMBoGA1UEAxMTc2FzLWNvbnN1bC1z
5
+ ZXJ2ZXItMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANBcqa39TogJ
6
+ n57iGMYQ2dPvKt0ueLNaW70w1qBBb4CWeFclwcAhJQ7EHgvrdSfR7WGfoCe2E9nI
7
+ g2lTabLT1CJnTeTEg9JqKywfzRooF8sSTeW1Sjjz/TXtAxJW/UfoKqUSRRQcjeNC
8
+ LCshWx0YQCew+T7gWwCu6+L39l5EwP20WGV0vtZlNPm8wGJf14MuLd9Pltzps0Sx
9
+ WGk/OWr3yrwBC21+9wdI77aPh9zAgD31tbUAeGMrCTpY3oWuI8vKlo9kDOoiXAjv
10
+ bIVLhzU4HqL/cgwl9dRSTmq00N8qd/jReBjloJl4Vta/7hWxkJmwH4XPYYhFQe+b
11
+ hW9RMMTKNucCAwEAAaOCAVYwggFSMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAU
12
+ BggrBgEFBQcDAQYIKwYBBQUHAwIwHQYDVR0OBBYEFCb35V252QMYv87u/lrBgCSJ
13
+ QTKeMB8GA1UdIwQYMBaAFJUUcdT1cFMcpZ3jByBOvbbUSzhYMIHgBgNVHREEgdgw
14
+ gdWCIGFrcy1zdGF0ZWZ1bC0yMTkzODE2NS12bXNzMDAwMDBzgglsb2NhbGhvc3SC
15
+ EXNhcy1jb25zdWwtc2VydmVyghNzYXMtY29uc3VsLXNlcnZlci0wgkVzYXMtY29u
16
+ c3VsLXNlcnZlci0wLnNhcy1jb25zdWwtc2VydmVyLWludGVybmFsLnZpeWEuc3Zj
17
+ LmNsdXN0ZXIubG9jYWyCH3hhYXMtODQ3ODQ4ODQ1MTEuZW5nYWdlLnNhcy5jb22H
18
+ BAoAAlKHBAr0BTOHBH8AAAGHBMCoAAgwDQYJKoZIhvcNAQELBQADggEBAHK0ua95
19
+ 58zfmBIqt50REsUHZ8prLd/UKKwfJpUYC8blK8sHV/t3w5CvjUEHLdA4SFvYRpXB
20
+ Nfhb4Hepe9zg9jANon4coWxNpbKBSLx8CTombylfqEjCtnVsl6dNWC4s6e+sHrZe
21
+ o8Uc687G7g1IkN/Aw7BO/aPoZA5U5rl4uZdmVg/wIbkdaAKjMR3Z86ykamNsCIp2
22
+ aCXsCO8wSurG+upczsnBqYCBtX3F5EhE5BUsEgq8c5op7Gx5CAJ2KN/pL76i2JL2
23
+ h7mHfNqQZoFSypp2d4U3GLLb92gxoQosbQrnX8vCI9m9OlKOJzooMI4uP838nwxf
24
+ GyfP+QhQCMDGc+A=
25
+ -----END CERTIFICATE-----
@@ -0,0 +1,28 @@
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDQXKmt/U6ICZ+e
3
+ 4hjGENnT7yrdLnizWlu9MNagQW+AlnhXJcHAISUOxB4L63Un0e1hn6AnthPZyINp
4
+ U2my09QiZ03kxIPSaissH80aKBfLEk3ltUo48/017QMSVv1H6CqlEkUUHI3jQiwr
5
+ IVsdGEAnsPk+4FsAruvi9/ZeRMD9tFhldL7WZTT5vMBiX9eDLi3fT5bc6bNEsVhp
6
+ Pzlq98q8AQttfvcHSO+2j4fcwIA99bW1AHhjKwk6WN6FriPLypaPZAzqIlwI72yF
7
+ S4c1OB6i/3IMJfXUUk5qtNDfKnf40XgY5aCZeFbWv+4VsZCZsB+Fz2GIRUHvm4Vv
8
+ UTDEyjbnAgMBAAECggEAANgmI9/tC684lac9Lr8lTkFESHxPlJ3oHrDb1KYhhNNy
9
+ stH+NJKtz58UHTv3K21sxvl/DDfcz01CR6Mgdzznp03AJg4sF7ieIZjtrbMHCRV8
10
+ VVL2meQyE8SUP5t9xvk/KLTw9dznMAD/EkCHWdlCmCaUubKlC8Kps3jA54pRNnX4
11
+ U3n17CGpaawAw6IWpynoqWeZfO6hV35FyAzrJ/+oT2/r1ySf7k+V7n+XHfjz+K42
12
+ Zp0mUGtvZe0nFYvzMnFpUkxvcSXarIzD/+/FMtkJnFh5GDzKRAf0kQSWSqLL31rZ
13
+ 6dope8cYUhMnfAH+y+qYFohMSAMkFvfmHIfJCX5OyQKBgQDt/UtwFSV4A1la3X7F
14
+ lVek1r6xbkmWto4G+w6gGB3IiyhAQ7JT4AjGjQ6+8HUQwq9ntslJl85+3hHNTHV9
15
+ QV/6FBr4V91wW88FB9ruD6jw//Qyv4I74LRp34eAFQTWn7klnE3ZrGQVqPNgC+Aa
16
+ cQ2VChUBjMeZsJWe6zLeQ92bWwKBgQDgIWDVNQysqqk1Hvqu8vFIAh4DWmfwGBSY
17
+ CfOrlLfVnqcWtAX9jVhwaf+SZhldG0CUh4fzB+thzRSn5BWk7Cdcc4hmol77Qs4T
18
+ XJyI2iSQJGi9cagPpBVmA+/f7d3OpWBcRkNQR4v3V1em8fIC+12LdolBP/Ah4APl
19
+ RqmMn5OEZQKBgQDnq7wk5qDr3C6+soF267M+xsEpTdga+6j0iK6rD+7mSviq3nuZ
20
+ BKzmQ2hIXSFIaIyBpMD7f+jHPXwM4tI4VUyNz8aVXEs21liHaCcpuVrXCAJ66Exp
21
+ 54sYyT1JZKyqFSARyb9LF3LyVt5b8BN/CfCT1hWuxZGEPg7YfdKt5VizowKBgQCk
22
+ YZaliKztDpXfcgMlwOSZjYP5rZrBise/4rymQQK7WArwKcSi+8G7YOKiuuMrWEt7
23
+ JBPfeRV3u3PE1xHQzarosYt+yuOioJKHvMrJzEQ4u5teJje+kPdoxMZvlAO0BbKw
24
+ uo+wF2leVN7igFyhNz6ahKuSAZTbI3N3+uVrT7ZfyQKBgE/9OiCsqmcPUvy4dT6o
25
+ sCXHFTPii54vZLvL3/GhfJUPW21+XHuLrwhsi8MbRU5Wk51409noY3W8h41TPPFV
26
+ r2HirPAxW4Om3AhsWo1522pVt/nXxm0OT59ICAENIvYE56EX4UjwVlFxkSEcL8Jz
27
+ FSnXxmP5vCQXGx09r3Rd025y
28
+ -----END PRIVATE KEY-----
@@ -0,0 +1,5 @@
1
+ kubectl cp $(kubectl get pod | grep "sas-consul-server-0" | awk -F" " '{print $1}'):security/ca.crt ./ca.crt
2
+
3
+ kubectl cp $(kubectl get pod | grep "sas-consul-server-0" | awk -F" " '{print $1}'):security/tls.crt ./tls.crt
4
+
5
+ kubectl cp $(kubectl get pod | grep "sas-consul-server-0" | awk -F" " '{print $1}'):security/tls.key ./tls.key
@@ -0,0 +1,12 @@
1
+ version: "3.8"
2
+ services:
3
+ viyaapp:
4
+ build: .
5
+ restart: always
6
+ ports:
7
+ - 8080:8080
8
+ environment:
9
+ - VIYA_SERVER=$V1
10
+ - APPNAME=viyaapp
11
+ - DEBUG=
12
+
@@ -1,9 +1,7 @@
1
- #!/usr/bin/env node
2
1
  /*
3
2
  * Copyright © 2019, SAS Institute Inc., Cary, NC, USA. All Rights Reserved.
4
3
  * SPDX-License-Identifier: Apache-2.0
5
- */
6
- "use strict";
7
-
8
- var icli = require('./index.js');
9
- icli(null, true, null);
4
+ */
5
+ const api = require('./api');
6
+ let server = require('@sassoftware/viya-apiserverjs');
7
+ server.icli (api);
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "apptest",
3
+ "version": "2.0.1",
4
+ "description": "",
5
+ "main": "app.js",
6
+ "scripts": {
7
+ "start": "cross-env NODE_TLS_REJECT_UNAUTHORIZED=0 node index.js --env=./.env --docker=./Dockerfile",
8
+ "starti": "cross-env NODE_TLS_REJECT_UNAUTHORIZED=0 node index.js --env=./.envimpl --docker=./Dockerfile",
9
+ "proxy": "cross-env NODE_TLS_REJECT_UNAUTHORIZED=0 node index.js --env=./.envproxy --docker=./Dockerfile",
10
+
11
+ "debug": "cross-env NODE_TLS_REJECT_UNAUTHORIZED=0 node --inspect-brk index.js --env=./.env --docker=./Dockerfile",
12
+ "indocker": "cross-env NODE_TLS_REJECT_UNAUTHORIZED=0 node index.js"
13
+ },
14
+ "keywords": [],
15
+ "author": "",
16
+ "license": "ISC",
17
+ "dependencies": {
18
+ "cross-env": ">=7.0.0"
19
+ }
20
+ }
@@ -0,0 +1,182 @@
1
+ /*--------------------------------------------------
2
+ The options statement below should be placed
3
+ before the data step when submitting this code.
4
+ --------------------------------------------------*/
5
+ /*options VALIDMEMNAME=EXTEND VALIDVARNAME=ANY;*/
6
+ /*------------------------------------------
7
+ Generated SAS Scoring Code
8
+ Date : 02Jul2019:21:19:56
9
+ Locale : en_US
10
+ Model Type : Cluster
11
+ Interval variable: SDOH_PMU(SDOH1 Physically Mentally Unhealthy)
12
+ Interval variable: SDOH_Per_Adults_Bachelors(SDOH2 Education)
13
+ Interval variable: SDOH_Unemployment_Rate(SDOH4 Unemployment Rate)
14
+ Interval variable: SDOH_Median_Household_Income(SDOH3 Median Household Income)
15
+ ------------------------------------------*/
16
+
17
+
18
+ length _WARN_ $4;
19
+ label _WARN_ = 'Warnings';
20
+ label _CLUSTER_ID_ = 'Cluster ID';
21
+ label _DISTANCE_ = 'Distance to Centroid';
22
+
23
+ _i_ = 0;
24
+ _j_ = 0;
25
+ _k_ = 0;
26
+ _l_ = 0;
27
+ _dist_ = 0;
28
+ _minDist_ = 0;
29
+ _found_ = 0;
30
+ _unknown_ = 0;
31
+ _unknownflag_ = 0;
32
+ _intMindist2cntr_ = 0;
33
+ _missingflag4Int_ = 0;
34
+ _numberOfIntVars_ = 4;
35
+ _minDistInt_ = 0;
36
+ label _STANDARDIZED_DISTANCE_ = 'Standardized Distance to Centroid';
37
+
38
+ drop _i_;
39
+ drop _j_;
40
+ drop _k_;
41
+ drop _l_;
42
+ drop _dist_;
43
+ drop _minDist_;
44
+ drop _minDistInt_;
45
+ drop _unknown_;
46
+ drop _unknownflag_;
47
+ drop _found_;
48
+ drop _intMindist2cntr_;
49
+ drop _missingflag4Int_;
50
+ drop _numberOfIntVars_;
51
+ drop _minDistInt_;
52
+
53
+ array _intVals_67{4} _temporary_;
54
+ array _intStdVals_67{4} _temporary_;
55
+ array _intVars_67[4] _temporary_;
56
+ _intVars_67[1] =
57
+ SDOH_PMU;
58
+ _intVars_67[2] =
59
+ SDOH_Per_Adults_Bachelors;
60
+ _intVars_67[3] =
61
+ SDOH_Unemployment_Rate;
62
+ _intVars_67[4] =
63
+ SDOH_Median_Household_Income;
64
+ array _cntrcoordsInt_67{4,4} _temporary_ (
65
+ 5.6752109618776
66
+ 34.574068577069
67
+ 5.5249572649573
68
+ 65162.262238794
69
+ 6.1728412355737
70
+ 28.076500921419
71
+ 8.4815044247788
72
+ 50250.811599193
73
+ 5.5563377592335
74
+ 27.69585347275
75
+ 3.586724137931
76
+ 55456.199169472
77
+ 7.1425816544567
78
+ 23.193113163492
79
+ 5.9483653846154
80
+ 45013.481439879
81
+ );
82
+ array _stdcntrcoordsInt_67 {4,4} _temporary_ (
83
+ -0.545947986801
84
+ 1.2465170251288
85
+ -0.140043320021
86
+ 1.2424484776721
87
+ 0.080847377302
88
+ -0.09555849286
89
+ 1.0754374093924
90
+ -0.456774851619
91
+ -0.695675960102
92
+ -0.17418139437
93
+ -0.936879929639
94
+ 0.1364012391051
95
+ 1.3022939633885
96
+ -1.104224427884
97
+ 0.0340260867236
98
+ -1.053590936451
99
+ );
100
+ array _stdscaleInt_67 {4} _temporary_ (
101
+ 0.7939278147152
102
+ 4.8414322208822
103
+ 2.4324097357342
104
+ 8775.4507500947
105
+ );
106
+ array _stdcenterInt_67 {4} _temporary_ (
107
+ 6.1086542539869
108
+ 28.539140887732
109
+ 5.8656
110
+ 54259.216813453
111
+ );
112
+
113
+ *************** check missing interval value ******************;
114
+ _missingflag4Int_ = 0;
115
+ do _i_ = 1 to _numberOfIntVars_ until(_missingflag4Int_);
116
+ if missing( _intVars_67[_i_] ) then
117
+ _missingflag4Int_ = 1;
118
+ end;
119
+
120
+ if (_missingflag4Int_ = 1) then
121
+ substr(_WARN_, 1, 1) = 'M';
122
+ ********** prepare interval variable values *********;
123
+ do _i_ = 1 to _numberOfIntVars_;
124
+ if missing (_intVars_67[_i_] ) then do;
125
+ _intVals_67[_i_] = .;
126
+ _intStdVals_67[_i_] = .;
127
+ end; else do;
128
+ if missing (_stdscaleInt_67[_i_] ) then do;
129
+ _intStdVals_67[_i_] = ( _intVars_67[_i_] - _stdcenterInt_67[_i_]);
130
+ end; else do;
131
+ _intStdVals_67[_i_] = ( _intVars_67[_i_] - _stdcenterInt_67[_i_])
132
+ / _stdscaleInt_67[_i_];
133
+ end;
134
+ _intVals_67[_i_] = _intVars_67[_i_];
135
+ end;
136
+ end;
137
+ ****************** find the closest cluster ******************;
138
+ if _missingflag4Int_ > 0 then
139
+ do;
140
+ _CLUSTER_ID_ = .;
141
+ _DISTANCE_ = .;
142
+ _minDistInt_ = .;
143
+ _STANDARDIZED_DISTANCE_ = .;
144
+ end;
145
+ else
146
+ do;
147
+ _CLUSTER_ID_ = .;
148
+ _minDist_ = 8.988465674E307;
149
+ do _i_=1 to 4;
150
+ _intMindist2cntr_ = 0;
151
+ do _j_=1 to 4;
152
+ _dist_ = _intStdVals_67{_j_} - _stdcntrcoordsInt_67{_i_,_j_};
153
+ _dist_ = _dist_ ** 2;
154
+ _intMindist2cntr_ = _intMindist2cntr_ + _dist_;
155
+ end;
156
+ _intMindist2cntr_ = _intMindist2cntr_ ** 0.5;
157
+ if( _minDist_ > _intMindist2cntr_) then do;
158
+ _CLUSTER_ID_ = _i_;
159
+ _minDist_ = _intMindist2cntr_;
160
+ end;
161
+ _STANDARDIZED_DISTANCE_ = _minDist_;
162
+ end;
163
+ _DISTANCE_ = 8.988465674E307;
164
+ _i_ = _CLUSTER_ID_;
165
+ _intMindist2cntr_ = 0;
166
+ do _j_=1 to 4;
167
+ _dist_ = _intVals_67{_j_} - _cntrcoordsInt_67{_i_,_j_};
168
+ _dist_ = _dist_ ** 2;
169
+ _intMindist2cntr_ = _intMindist2cntr_ + _dist_;
170
+ end;
171
+ _intMindist2cntr_ = _intMindist2cntr_ ** 0.5;
172
+ _DISTANCE_ = _intMindist2cntr_;
173
+ end;
174
+
175
+ if (MISSING('_CLUSTER_ID_'n))then _CLUSTER_ID_ = -1; /*------------------------------------------*/
176
+ drop '_CLUSTER_ID_'n '_DISTANCE_'n '_WARN_'n '_STANDARDIZED_DISTANCE_'n;
177
+ '_CLUSTER_ID__67'n='_CLUSTER_ID_'n;
178
+ '_DISTANCE__67'n='_DISTANCE_'n;
179
+ '_WARN__67'n='_WARN_'n;
180
+ '_STANDARDIZED_DISTANCE__67'n='_STANDARDIZED_DISTANCE_'n;
181
+ /*------------------------------------------*/
182
+ run;