@sassoftware/viya-serverjs 0.2.2 → 0.2.4

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 (314) hide show
  1. package/.env +4 -4
  2. package/.env.proxy +4 -3
  3. package/.env.server +5 -4
  4. package/Dockerfile +3 -3
  5. package/cli.js +2 -2
  6. package/lib/handlers/proxyMapUri.js +4 -30
  7. package/lib/handlers/setCookies.js +7 -6
  8. package/lib/plugins/appCookie.js +3 -3
  9. package/lib/plugins/setDefaultRoutes.js +78 -53
  10. package/lib/plugins/setupAuth.js +2 -1
  11. package/package.json +1 -1
  12. package/public/index.html +8 -2
  13. package/public/indexProxy.html +1 -0
  14. package/server.js +5 -116
  15. package/src/handlers/proxyMapUri.js +2 -30
  16. package/src/handlers/setCookies.js +3 -1
  17. package/src/iService.js +1 -0
  18. package/src/plugins/appCookie.js +3 -3
  19. package/src/plugins/setDefaultRoutes.js +7 -14
  20. package/src/plugins/setupAuth.js +3 -1
  21. package/{packages/examples/app/certs/tls.sh → tls/viyatls.sh} +0 -2
  22. package/packages/core/config.js +0 -86
  23. package/packages/core/handlers/appCallback.js +0 -40
  24. package/packages/core/handlers/codeAuth.js +0 -31
  25. package/packages/core/handlers/decodeJwt.js +0 -11
  26. package/packages/core/handlers/favicon.js +0 -24
  27. package/packages/core/handlers/getApp.js +0 -41
  28. package/packages/core/handlers/getApp2.js +0 -26
  29. package/packages/core/handlers/getUser.js +0 -20
  30. package/packages/core/handlers/index.js +0 -36
  31. package/packages/core/handlers/keepAlive.js +0 -54
  32. package/packages/core/handlers/keepAlive2.js +0 -13
  33. package/packages/core/handlers/logon.js +0 -24
  34. package/packages/core/handlers/logout.js +0 -43
  35. package/packages/core/handlers/proxyMapUri.js +0 -53
  36. package/packages/core/handlers/proxyOnResponse.js +0 -12
  37. package/packages/core/handlers/reactDev.js +0 -30
  38. package/packages/core/handlers/setCookies.js +0 -78
  39. package/packages/core/iService.js +0 -369
  40. package/packages/core/index.js +0 -249
  41. package/packages/core/parseDocker.js +0 -33
  42. package/packages/core/plugins/SASauth.js +0 -79
  43. package/packages/core/plugins/appCookie.js +0 -49
  44. package/packages/core/plugins/setContext.js +0 -34
  45. package/packages/core/plugins/setDefaultRoutes.js +0 -262
  46. package/packages/core/plugins/setupAuth.js +0 -48
  47. package/packages/core/plugins/setupUserRoutes.js +0 -48
  48. package/packages/core/plugins/token.js +0 -10
  49. package/packages/core/schemes/SASTokenScheme.js +0 -43
  50. package/packages/core/visionIndex.html +0 -24
  51. package/packages/examples/apitest/.env +0 -11
  52. package/packages/examples/apitest/.eslintrc.json +0 -42
  53. package/packages/examples/apitest/Dockerfile +0 -41
  54. package/packages/examples/apitest/api.js +0 -88
  55. package/packages/examples/apitest/appenv.js +0 -6
  56. package/packages/examples/apitest/docker-compose.yml +0 -10
  57. package/packages/examples/apitest/package.json +0 -19
  58. package/packages/examples/apitest/public/data/Cluster_SDOH1.sas +0 -182
  59. package/packages/examples/apitest/public/data/Cluster_SDOH6.sas +0 -180
  60. package/packages/examples/apitest/public/data/LeNet_snzrle.astore +0 -0
  61. package/packages/examples/apitest/public/data/NeuralNetwork_High_med.sas +0 -2409
  62. package/packages/examples/apitest/public/data/NeuralNetwork_high_med1.sas +0 -2409
  63. package/packages/examples/apitest/public/data/ast/GBlocalcopy.sasast +0 -0
  64. package/packages/examples/apitest/public/data/ast/LeNet_snzrle.astore +0 -0
  65. package/packages/examples/apitest/public/data/ast/gb_IrisGB.sasast +0 -0
  66. package/packages/examples/apitest/public/data/ast/paysimsvdd.sasast +0 -0
  67. package/packages/examples/apitest/public/data/ast/svmlocalcopy.sasast +0 -0
  68. package/packages/examples/apitest/public/data/cars.csv +0 -429
  69. package/packages/examples/apitest/public/data/cluster_test2.sas7bdat +0 -0
  70. package/packages/examples/apitest/public/data/cmdList.txt +0 -15
  71. package/packages/examples/apitest/public/data/gradBoost.sashdat +0 -0
  72. package/packages/examples/apitest/public/data/iris.csv +0 -151
  73. package/packages/examples/apitest/public/data/model1.sas7bdat +0 -0
  74. package/packages/examples/apitest/public/favicon.ico +0 -0
  75. package/packages/examples/apitest/public/index.html +0 -316
  76. package/packages/examples/apitest/public/index2.html +0 -102
  77. package/packages/examples/apitest/public/logon.html +0 -42
  78. package/packages/examples/apitest/public/myapp/secondary.html +0 -1
  79. package/packages/examples/apitest/public/myapp/test.js +0 -2
  80. package/packages/examples/apitest/public/onlogoff.html +0 -53
  81. package/packages/examples/apitest/start.sh +0 -15
  82. package/packages/examples/app/.env +0 -32
  83. package/packages/examples/app/.envProxy +0 -19
  84. package/packages/examples/app/.envimpl +0 -12
  85. package/packages/examples/app/.eslintrc.json +0 -42
  86. package/packages/examples/app/Dockerfile +0 -42
  87. package/packages/examples/app/appenv.js +0 -6
  88. package/packages/examples/app/certs/ca.crt +0 -19
  89. package/packages/examples/app/certs/tls.crt +0 -25
  90. package/packages/examples/app/certs/tls.key +0 -28
  91. package/packages/examples/app/docker-compose.yml +0 -12
  92. package/packages/examples/app/index.js +0 -15
  93. package/packages/examples/app/package.json +0 -20
  94. package/packages/examples/app/public/casread.html +0 -324
  95. package/packages/examples/app/public/data/Cluster_SDOH1.sas +0 -182
  96. package/packages/examples/app/public/data/Cluster_SDOH6.sas +0 -180
  97. package/packages/examples/app/public/data/LeNet_snzrle.astore +0 -0
  98. package/packages/examples/app/public/data/NeuralNetwork_High_med.sas +0 -2409
  99. package/packages/examples/app/public/data/NeuralNetwork_high_med1.sas +0 -2409
  100. package/packages/examples/app/public/data/ast/GBlocalcopy.sasast +0 -0
  101. package/packages/examples/app/public/data/ast/LeNet_snzrle.astore +0 -0
  102. package/packages/examples/app/public/data/ast/gb_IrisGB.sasast +0 -0
  103. package/packages/examples/app/public/data/ast/paysimsvdd.sasast +0 -0
  104. package/packages/examples/app/public/data/ast/svmlocalcopy.sasast +0 -0
  105. package/packages/examples/app/public/data/cars.csv +0 -429
  106. package/packages/examples/app/public/data/cluster_test2.sas7bdat +0 -0
  107. package/packages/examples/app/public/data/cmdList.txt +0 -15
  108. package/packages/examples/app/public/data/gradBoost.sashdat +0 -0
  109. package/packages/examples/app/public/data/iris.csv +0 -151
  110. package/packages/examples/app/public/data/model1.sas7bdat +0 -0
  111. package/packages/examples/app/public/favicon.ico +0 -0
  112. package/packages/examples/app/public/index.html +0 -332
  113. package/packages/examples/app/public/indexProxy.html +0 -346
  114. package/packages/examples/app/public/indextest.html +0 -316
  115. package/packages/examples/app/public/logon.html +0 -44
  116. package/packages/examples/app/public/micburger.html +0 -345
  117. package/packages/examples/app/public/micburger.txt.html +0 -311
  118. package/packages/examples/app/public/myapp/secondary.html +0 -1
  119. package/packages/examples/app/public/myapp/test.js +0 -2
  120. package/packages/examples/app/public/sara.txt +0 -345
  121. package/packages/examples/app/public/testva2.html +0 -311
  122. package/packages/examples/app/startup.sh +0 -15
  123. package/packages/examples/appdocker/.env +0 -21
  124. package/packages/examples/appdocker/.envProxy +0 -22
  125. package/packages/examples/appdocker/.envimpl +0 -12
  126. package/packages/examples/appdocker/.eslintrc.json +0 -42
  127. package/packages/examples/appdocker/Dockerfile +0 -43
  128. package/packages/examples/appdocker/appenv.js +0 -6
  129. package/packages/examples/appdocker/certs/ca.crt +0 -19
  130. package/packages/examples/appdocker/certs/tls.crt +0 -25
  131. package/packages/examples/appdocker/certs/tls.key +0 -28
  132. package/packages/examples/appdocker/certs/tls.sh +0 -5
  133. package/packages/examples/appdocker/docker-compose.yml +0 -12
  134. package/packages/examples/appdocker/index.js +0 -15
  135. package/packages/examples/appdocker/package.json +0 -20
  136. package/packages/examples/appdocker/public/data/Cluster_SDOH1.sas +0 -182
  137. package/packages/examples/appdocker/public/data/Cluster_SDOH6.sas +0 -180
  138. package/packages/examples/appdocker/public/data/LeNet_snzrle.astore +0 -0
  139. package/packages/examples/appdocker/public/data/NeuralNetwork_High_med.sas +0 -2409
  140. package/packages/examples/appdocker/public/data/NeuralNetwork_high_med1.sas +0 -2409
  141. package/packages/examples/appdocker/public/data/ast/GBlocalcopy.sasast +0 -0
  142. package/packages/examples/appdocker/public/data/ast/LeNet_snzrle.astore +0 -0
  143. package/packages/examples/appdocker/public/data/ast/gb_IrisGB.sasast +0 -0
  144. package/packages/examples/appdocker/public/data/ast/paysimsvdd.sasast +0 -0
  145. package/packages/examples/appdocker/public/data/ast/svmlocalcopy.sasast +0 -0
  146. package/packages/examples/appdocker/public/data/cars.csv +0 -429
  147. package/packages/examples/appdocker/public/data/cluster_test2.sas7bdat +0 -0
  148. package/packages/examples/appdocker/public/data/cmdList.txt +0 -15
  149. package/packages/examples/appdocker/public/data/gradBoost.sashdat +0 -0
  150. package/packages/examples/appdocker/public/data/iris.csv +0 -151
  151. package/packages/examples/appdocker/public/data/model1.sas7bdat +0 -0
  152. package/packages/examples/appdocker/public/favicon.ico +0 -0
  153. package/packages/examples/appdocker/public/index.html +0 -346
  154. package/packages/examples/appdocker/public/indexProxy.html +0 -346
  155. package/packages/examples/appdocker/public/indextest.html +0 -316
  156. package/packages/examples/appdocker/public/logon.html +0 -44
  157. package/packages/examples/appdocker/public/myapp/secondary.html +0 -1
  158. package/packages/examples/appdocker/public/myapp/test.js +0 -2
  159. package/packages/examples/appdocker/startup.sh +0 -15
  160. package/packages/examples/apptest/.env +0 -28
  161. package/packages/examples/apptest/.envProxy +0 -22
  162. package/packages/examples/apptest/.envimpl +0 -12
  163. package/packages/examples/apptest/.eslintrc.json +0 -42
  164. package/packages/examples/apptest/Dockerfile +0 -44
  165. package/packages/examples/apptest/appDir/app1/design.html +0 -350
  166. package/packages/examples/apptest/appDir/app1/index.html +0 -353
  167. package/packages/examples/apptest/appDir/index.html +0 -350
  168. package/packages/examples/apptest/appenv.js +0 -6
  169. package/packages/examples/apptest/docker-compose.yml +0 -12
  170. package/packages/examples/apptest/index.js +0 -444
  171. package/packages/examples/apptest/package.json +0 -24
  172. package/packages/examples/apptest/public/casread2.html +0 -321
  173. package/packages/examples/apptest/public/data/Cluster_SDOH1.sas +0 -182
  174. package/packages/examples/apptest/public/data/Cluster_SDOH6.sas +0 -180
  175. package/packages/examples/apptest/public/data/LeNet_snzrle.astore +0 -0
  176. package/packages/examples/apptest/public/data/NeuralNetwork_High_med.sas +0 -2409
  177. package/packages/examples/apptest/public/data/NeuralNetwork_high_med1.sas +0 -2409
  178. package/packages/examples/apptest/public/data/ast/GBlocalcopy.sasast +0 -0
  179. package/packages/examples/apptest/public/data/ast/LeNet_snzrle.astore +0 -0
  180. package/packages/examples/apptest/public/data/ast/gb_IrisGB.sasast +0 -0
  181. package/packages/examples/apptest/public/data/ast/paysimsvdd.sasast +0 -0
  182. package/packages/examples/apptest/public/data/ast/svmlocalcopy.sasast +0 -0
  183. package/packages/examples/apptest/public/data/cars.csv +0 -429
  184. package/packages/examples/apptest/public/data/cluster_test2.sas7bdat +0 -0
  185. package/packages/examples/apptest/public/data/cmdList.txt +0 -15
  186. package/packages/examples/apptest/public/data/gradBoost.sashdat +0 -0
  187. package/packages/examples/apptest/public/data/iris.csv +0 -151
  188. package/packages/examples/apptest/public/data/model1.sas7bdat +0 -0
  189. package/packages/examples/apptest/public/design.html +0 -349
  190. package/packages/examples/apptest/public/favicon.ico +0 -0
  191. package/packages/examples/apptest/public/help.html +0 -1
  192. package/packages/examples/apptest/public/index.html +0 -353
  193. package/packages/examples/apptest/public/index2.html +0 -353
  194. package/packages/examples/apptest/public/indexProxy.html +0 -346
  195. package/packages/examples/apptest/public/indextest.html +0 -316
  196. package/packages/examples/apptest/public/logon.html +0 -44
  197. package/packages/examples/apptest/public/myapp/q.html +0 -349
  198. package/packages/examples/apptest/public/myapp/secondary.html +0 -1
  199. package/packages/examples/apptest/public/myapp/test.js +0 -2
  200. package/packages/examples/apptest/public/push1.html +0 -187
  201. package/packages/examples/apptest/startup.sh +0 -15
  202. package/packages/examples/apptesti/.env +0 -13
  203. package/packages/examples/apptesti/.eslintrc.json +0 -42
  204. package/packages/examples/apptesti/Dockerfile +0 -42
  205. package/packages/examples/apptesti/appenv.js +0 -6
  206. package/packages/examples/apptesti/certs/ca.crt +0 -19
  207. package/packages/examples/apptesti/certs/tls.crt +0 -25
  208. package/packages/examples/apptesti/certs/tls.key +0 -28
  209. package/packages/examples/apptesti/certs/tls.sh +0 -5
  210. package/packages/examples/apptesti/docker-compose.yml +0 -12
  211. package/packages/examples/apptesti/index.js +0 -7
  212. package/packages/examples/apptesti/package.json +0 -20
  213. package/packages/examples/apptesti/public/data/Cluster_SDOH1.sas +0 -182
  214. package/packages/examples/apptesti/public/data/Cluster_SDOH6.sas +0 -180
  215. package/packages/examples/apptesti/public/data/LeNet_snzrle.astore +0 -0
  216. package/packages/examples/apptesti/public/data/NeuralNetwork_High_med.sas +0 -2409
  217. package/packages/examples/apptesti/public/data/NeuralNetwork_high_med1.sas +0 -2409
  218. package/packages/examples/apptesti/public/data/ast/GBlocalcopy.sasast +0 -0
  219. package/packages/examples/apptesti/public/data/ast/LeNet_snzrle.astore +0 -0
  220. package/packages/examples/apptesti/public/data/ast/gb_IrisGB.sasast +0 -0
  221. package/packages/examples/apptesti/public/data/ast/paysimsvdd.sasast +0 -0
  222. package/packages/examples/apptesti/public/data/ast/svmlocalcopy.sasast +0 -0
  223. package/packages/examples/apptesti/public/data/cars.csv +0 -429
  224. package/packages/examples/apptesti/public/data/cluster_test2.sas7bdat +0 -0
  225. package/packages/examples/apptesti/public/data/cmdList.txt +0 -15
  226. package/packages/examples/apptesti/public/data/gradBoost.sashdat +0 -0
  227. package/packages/examples/apptesti/public/data/iris.csv +0 -151
  228. package/packages/examples/apptesti/public/data/model1.sas7bdat +0 -0
  229. package/packages/examples/apptesti/public/favicon.ico +0 -0
  230. package/packages/examples/apptesti/public/index.html +0 -346
  231. package/packages/examples/apptesti/public/indexProxy.html +0 -346
  232. package/packages/examples/apptesti/public/indextest.html +0 -316
  233. package/packages/examples/apptesti/public/logon.html +0 -44
  234. package/packages/examples/apptesti/public/main.html +0 -346
  235. package/packages/examples/apptesti/public/myapp/secondary.html +0 -1
  236. package/packages/examples/apptesti/public/myapp/test.js +0 -2
  237. package/packages/examples/apptesti/startup.sh +0 -15
  238. package/packages/examples/basic/.env +0 -10
  239. package/packages/examples/basic/.eslintrc.json +0 -42
  240. package/packages/examples/basic/Dockerfile +0 -41
  241. package/packages/examples/basic/api.js +0 -88
  242. package/packages/examples/basic/appenv.js +0 -6
  243. package/packages/examples/basic/docker-compose.yml +0 -10
  244. package/packages/examples/basic/package.json +0 -19
  245. package/packages/examples/basic/public/data/Cluster_SDOH1.sas +0 -182
  246. package/packages/examples/basic/public/data/Cluster_SDOH6.sas +0 -180
  247. package/packages/examples/basic/public/data/LeNet_snzrle.astore +0 -0
  248. package/packages/examples/basic/public/data/NeuralNetwork_High_med.sas +0 -2409
  249. package/packages/examples/basic/public/data/NeuralNetwork_high_med1.sas +0 -2409
  250. package/packages/examples/basic/public/data/ast/GBlocalcopy.sasast +0 -0
  251. package/packages/examples/basic/public/data/ast/LeNet_snzrle.astore +0 -0
  252. package/packages/examples/basic/public/data/ast/gb_IrisGB.sasast +0 -0
  253. package/packages/examples/basic/public/data/ast/paysimsvdd.sasast +0 -0
  254. package/packages/examples/basic/public/data/ast/svmlocalcopy.sasast +0 -0
  255. package/packages/examples/basic/public/data/cars.csv +0 -429
  256. package/packages/examples/basic/public/data/cluster_test2.sas7bdat +0 -0
  257. package/packages/examples/basic/public/data/cmdList.txt +0 -15
  258. package/packages/examples/basic/public/data/gradBoost.sashdat +0 -0
  259. package/packages/examples/basic/public/data/iris.csv +0 -151
  260. package/packages/examples/basic/public/data/model1.sas7bdat +0 -0
  261. package/packages/examples/basic/public/favicon.ico +0 -0
  262. package/packages/examples/basic/public/index.html +0 -29
  263. package/packages/examples/basic/public/index2.html +0 -102
  264. package/packages/examples/basic/public/logon.html +0 -42
  265. package/packages/examples/basic/public/myapp/secondary.html +0 -1
  266. package/packages/examples/basic/public/myapp/test.js +0 -2
  267. package/packages/examples/basic/public/onlogoff.html +0 -53
  268. package/packages/examples/basic/start.sh +0 -15
  269. package/packages/examples/proxytest/.env +0 -23
  270. package/packages/examples/proxytest/.envimpl +0 -11
  271. package/packages/examples/proxytest/.eslintrc.json +0 -42
  272. package/packages/examples/proxytest/Dockerfile +0 -42
  273. package/packages/examples/proxytest/appenv.js +0 -6
  274. package/packages/examples/proxytest/docker-compose.yml +0 -12
  275. package/packages/examples/proxytest/index.js +0 -57
  276. package/packages/examples/proxytest/package.json +0 -18
  277. package/packages/examples/proxytest/public/data/Cluster_SDOH1.sas +0 -182
  278. package/packages/examples/proxytest/public/data/Cluster_SDOH6.sas +0 -180
  279. package/packages/examples/proxytest/public/data/LeNet_snzrle.astore +0 -0
  280. package/packages/examples/proxytest/public/data/NeuralNetwork_High_med.sas +0 -2409
  281. package/packages/examples/proxytest/public/data/NeuralNetwork_high_med1.sas +0 -2409
  282. package/packages/examples/proxytest/public/data/ast/GBlocalcopy.sasast +0 -0
  283. package/packages/examples/proxytest/public/data/ast/LeNet_snzrle.astore +0 -0
  284. package/packages/examples/proxytest/public/data/ast/gb_IrisGB.sasast +0 -0
  285. package/packages/examples/proxytest/public/data/ast/paysimsvdd.sasast +0 -0
  286. package/packages/examples/proxytest/public/data/ast/svmlocalcopy.sasast +0 -0
  287. package/packages/examples/proxytest/public/data/cars.csv +0 -429
  288. package/packages/examples/proxytest/public/data/cluster_test2.sas7bdat +0 -0
  289. package/packages/examples/proxytest/public/data/cmdList.txt +0 -15
  290. package/packages/examples/proxytest/public/data/gradBoost.sashdat +0 -0
  291. package/packages/examples/proxytest/public/data/iris.csv +0 -151
  292. package/packages/examples/proxytest/public/data/model1.sas7bdat +0 -0
  293. package/packages/examples/proxytest/public/favicon.ico +0 -0
  294. package/packages/examples/proxytest/public/index.html +0 -357
  295. package/packages/examples/proxytest/public/index.js +0 -57
  296. package/packages/examples/proxytest/public/indextest.html +0 -316
  297. package/packages/examples/proxytest/public/logon.html +0 -44
  298. package/packages/examples/proxytest/public/main.html +0 -357
  299. package/packages/examples/proxytest/public/myapp/secondary.html +0 -1
  300. package/packages/examples/proxytest/public/myapp/test.js +0 -2
  301. package/packages/examples/proxytest/public/restaf.js +0 -2461
  302. package/packages/examples/proxytest/public/restaf.min.js +0 -11
  303. package/packages/examples/proxytest/public/sas/iris.txt +0 -10
  304. package/packages/examples/proxytest/startup.sh +0 -15
  305. package/public/casread2.html +0 -321
  306. package/public/design.html +0 -350
  307. package/public/display.html +0 -354
  308. package/public/index2.html +0 -353
  309. package/public/indextest.html +0 -316
  310. package/public/logon.html +0 -44
  311. package/public/myapp/q.html +0 -349
  312. package/public/myapp/secondary.html +0 -1
  313. package/public/myapp/test.js +0 -2
  314. package/public/push1.html +0 -187
package/.env CHANGED
@@ -1,17 +1,17 @@
1
1
  APPHOST=localhost
2
2
  APPENTRY=index.html
3
3
  APPLOC=./public
4
- VIYA_SERVER=https://viya.kumar-zv1-azure-nginx-84560a6e.unx.sas.com
4
+ # VIYA_SERVER=
5
5
  # VIYA_SERVER=none
6
6
  APPPORT=8080
7
- APPNAME=appBuilder
7
+ APPNAME=viyaapp
8
8
  AUTHFLOW=server
9
- CLIENTID=appbuilder
9
+ CLIENTID=viyaapp
10
10
  CLIENTSECRET=jellico
11
11
  REDIRECT=
12
12
  # APPDIR=./appDir
13
13
  # HTTPS=true
14
- USELOGON=YES
14
+ # USELOGON=YES
15
15
 
16
16
  USETOKEN=NO
17
17
  # SHOWENV=YES
package/.env.proxy CHANGED
@@ -1,16 +1,17 @@
1
1
  APPHOST=localhost
2
- APPENTRY=index.html
2
+ # APPENTRY=index.html
3
3
  APPENTRY=indexProxy.html
4
4
  APPLOC=./public
5
- VIYA_SERVER=https://viya.kumar-zv1-azure-nginx-84560a6e.unx.sas.com
5
+ VIYA_SERVER=
6
6
  APPENV_PROXYSERVER=https://localhost:8080/appBuilder/proxy
7
- PROXYSERVER=https://viya.kumar-zv1-azure-nginx-84560a6e.unx.sas.com
7
+
8
8
  APPPORT=8080
9
9
  APPNAME=appBuilder
10
10
  AUTHFLOW=server
11
11
  CLIENTID=appbuilder
12
12
  CLIENTSECRET=jellico
13
13
  REDIRECT=
14
+
14
15
  # APPDIR=./appDir
15
16
  # HTTPS=true
16
17
  USELOGON=YES
package/.env.server CHANGED
@@ -1,11 +1,11 @@
1
1
  APPHOST=localhost
2
2
  APPENTRY=index.html
3
3
  APPLOC=./public
4
- # VIYA_SERVER=https://viya.kumar-zv1-azure-nginx-84560a6e.unx.sas.com
5
4
  VIYA_SERVER=
5
+ APPENV_PROXYSERVER=https://localhost:8080/appBuilder/proxy
6
6
  APPPORT=8080
7
7
  APPNAME=appBuilder
8
- AUTHFLOW=
8
+ AUTHFLOW=server
9
9
  CLIENTID=appbuilder
10
10
  CLIENTSECRET=jellico
11
11
  REDIRECT=/new
@@ -13,13 +13,14 @@ REDIRECT=/new
13
13
  # HTTPS=true
14
14
  USELOGON=YES
15
15
 
16
- USETOKEN=NO
16
+
17
+ USETOKEN=YES
17
18
  # SHOWENV=YES
18
19
  # APPENV=
19
20
  APPENV_XYZ=AA
20
21
  APPENV_BAD=
21
22
 
22
- # APPENV_PUPID=NSHOST=https://sas-logon-app.viya.svc.cluster.local
23
+
23
24
 
24
25
  # NAMESPACE=viya
25
26
  # TLS_CERT=./certs/tls.crt
package/Dockerfile CHANGED
@@ -20,7 +20,7 @@ ENV HTTPS=true
20
20
  # ENV APPPORT=8080
21
21
 
22
22
  ENV APPNAME=appBuilder
23
- ENV AUTHFLOW=
23
+ # ENV AUTHFLOW=
24
24
  ENV CLIENTID=appBuilder
25
25
  ENV CLIENTSECRET=jellico
26
26
  ENV HAPIDEBUG=NO
@@ -31,8 +31,8 @@ ENV HAPIDEBUG=NO
31
31
  ENV TLS_CREATE="C:US,ST:NC,L:Cary,O:SAS Institute,OU:STO,CN:localhost"
32
32
 
33
33
  # You can specify your own cet and key
34
- ENV TLS_CRT=./tls/tls.crt
35
- ENV TLS_KEY=./tls/tls.key
34
+ # ENV TLS_CRT=./tls/tls.crt
35
+ # ENV TLS_KEY=./tls/tls.key
36
36
 
37
37
  # Samesite specification
38
38
  ENV SAMESITE=None,secure
package/cli.js CHANGED
@@ -1,9 +1,9 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
  /*
3
3
  * Copyright © 2025, SAS Institute Inc., Cary, NC, USA. All Rights Reserved.
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- //let appServer = require('./lib/index.js');
6
+
7
7
  let core = require('./lib/index.js');
8
8
  console.log('Starting the cli for @sassoftware/viya-serverjs');
9
9
  core(null, true, 'app', null);
@@ -23,7 +23,9 @@ function _proxyMapUri() {
23
23
  sid = credentials.sid;
24
24
  console.log('sid=', sid);
25
25
  }
26
- path = process.env.PROXYSERVER;
26
+
27
+ // let path = process.env.PROXYSERVER;
28
+ path = process.env.PROXYSERVER == null ? process.env.VIYA_SERVER : process.env.PROXYSERVER;
27
29
  console.log('proxying to= ', path);
28
30
  params = req.params;
29
31
  console.log('params=', params);
@@ -45,32 +47,4 @@ function _proxyMapUri() {
45
47
  }));
46
48
  return _proxyMapUri.apply(this, arguments);
47
49
  }
48
- var _default = exports["default"] = proxyMapUri;
49
- /*
50
- let qsstring = req.raw.search;
51
- console.log('qsstring=', qsstring);
52
- let query = req.query;
53
- let newQuery = null;
54
-
55
- if (query != null) {
56
- console.log('query=', query);
57
- newQuery = {};
58
- for (let key in query) {
59
- let value = query[key];
60
- if (value === 'true' || value === 'false') {
61
- value = value === 'true';
62
- }
63
- newQuery[key] = value;
64
- }
65
- console.log('newQuery=', newQuery);
66
- }
67
- console.log(req.URLSearchParams);
68
- let uri = path + '/' + params.param;
69
- if (newQuery != null) {
70
- uri = `${uri}?${new URLSearchParams(newQuery)}`;
71
- }
72
- console.log('req.url', req.url);
73
- console.log('req.url', req.url.search);
74
- console.log('uri=', req.uri);
75
- console.log('path=', req.path);
76
- */
50
+ var _default = exports["default"] = proxyMapUri;
@@ -25,17 +25,18 @@ function _setCookies() {
25
25
  case 0:
26
26
  credentials = req.auth.credentials;
27
27
  debug('setcookie', credentials);
28
- debug('setcookie', credentials);
29
28
  if (!(credentials != null && req.auth.error != null)) {
30
- _context.next = 6;
29
+ _context.next = 7;
31
30
  break;
32
31
  }
32
+ debug('setcookie credentials', credentials);
33
+ debug('setcookie error', req.auth.error);
33
34
  debug('logon failed');
34
35
  return _context.abrupt("return", {
35
36
  status: false,
36
37
  error: req.auth.error
37
38
  });
38
- case 6:
39
+ case 7:
39
40
  // create a cookie(sid) and save credentials in cache
40
41
  sid = uuid.v4();
41
42
  credentials.sid = sid;
@@ -44,9 +45,9 @@ function _setCookies() {
44
45
  options.allAppEnv.LOGONPAYLOAD.tokenType = 'bearer';
45
46
  debug(options.allAppEnv.LOGONPAYLOAD);
46
47
  }
47
- _context.next = 11;
48
+ _context.next = 12;
48
49
  return req.server.app.cache.set(sid, credentials, 0);
49
- case 11:
50
+ case 12:
50
51
  // Can we get away without setting cookie for this session?
51
52
  // Need to also modify keepAlive
52
53
  if (process.env.COOKIES !== 'NO') {
@@ -64,7 +65,7 @@ function _setCookies() {
64
65
  error: null,
65
66
  redirect: redirect
66
67
  });
67
- case 17:
68
+ case 18:
68
69
  case "end":
69
70
  return _context.stop();
70
71
  }
@@ -34,7 +34,7 @@ module.exports = /*#__PURE__*/function () {
34
34
  return _regeneratorRuntime().wrap(function _callee$(_context) {
35
35
  while (1) switch (_context.prev = _context.next) {
36
36
  case 0:
37
- server.log('Cookie validateFunc', "path - ".concat(req.path));
37
+ debug('Cookie validateFunc', "path - ".concat(req.path));
38
38
  if (!(session == null)) {
39
39
  _context.next = 4;
40
40
  break;
@@ -67,7 +67,7 @@ module.exports = /*#__PURE__*/function () {
67
67
  valid: false
68
68
  });
69
69
  case 12:
70
- server.log('Cookie validateFunc', sid);
70
+ debug('Cookie validateFunc', sid);
71
71
  return _context.abrupt("return", {
72
72
  valid: true,
73
73
  credentials: credentials
@@ -84,7 +84,7 @@ module.exports = /*#__PURE__*/function () {
84
84
  return validateFunc;
85
85
  }()
86
86
  }; // console.log('cookie options', cookieOptions);
87
- server.log('Cookie Options', cookieOptions);
87
+ debug('Cookie Options', cookieOptions);
88
88
  server.auth.strategy('session', 'cookie', cookieOptions);
89
89
  case 7:
90
90
  case "end":
@@ -51,18 +51,30 @@ module.exports = function setDefaultRoutes(server, options) {
51
51
  var uTable = options.userRouteTable !== null ? (0, _handlers.setupUserRoutes)(options.userRouteTable, options) : null;
52
52
  var defaultTable = [{
53
53
  method: ["GET"],
54
- path: "/health",
54
+ path: "".concat(appName, "/logon"),
55
55
  options: {
56
- auth: false,
56
+ auth: options.authFlow === "server" ? {
57
+ mode: "try",
58
+ strategy: "sas"
59
+ } : null,
60
+ //https://futurestud.io/tutorials/hapi-redirect-to-previous-page-after-login
61
+ // set auth to null on all protected routes
62
+ plugins: {
63
+ "hapi-auth-cookie": {
64
+ redirectTo: false
65
+ }
66
+ },
57
67
  handler: function () {
58
68
  var _handler = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(req, h) {
59
69
  return _regeneratorRuntime().wrap(function _callee$(_context) {
60
70
  while (1) switch (_context.prev = _context.next) {
61
71
  case 0:
62
- return _context.abrupt("return", h.response({
63
- x: 1
64
- }).code(200));
65
- case 1:
72
+ debug('logonhandler', req.auth.credentials);
73
+ _context.next = 3;
74
+ return (0, _handlers.logon)(req, h);
75
+ case 3:
76
+ return _context.abrupt("return", _context.sent);
77
+ case 4:
66
78
  case "end":
67
79
  return _context.stop();
68
80
  }
@@ -74,23 +86,6 @@ module.exports = function setDefaultRoutes(server, options) {
74
86
  return handler;
75
87
  }()
76
88
  }
77
- }, {
78
- method: ["GET"],
79
- path: "".concat(appName, "/logon"),
80
- options: {
81
- auth: options.authFlow === "server" ? {
82
- mode: "try",
83
- strategy: "sas"
84
- } : null,
85
- //https://futurestud.io/tutorials/hapi-redirect-to-previous-page-after-login
86
- // set auth to null on all protected routes
87
- plugins: {
88
- "hapi-auth-cookie": {
89
- redirectTo: false
90
- }
91
- },
92
- handler: _handlers.logon
93
- }
94
89
  }, {
95
90
  method: ["GET"],
96
91
  path: "".concat(appName),
@@ -155,44 +150,74 @@ module.exports = function setDefaultRoutes(server, options) {
155
150
  path: "".concat(appName, "/appenv"),
156
151
  options: {
157
152
  auth: /*authDefault*/false,
158
- handler: function handler(req, h) {
159
- var allAppEnv = options.allAppEnv;
160
- if (options.userInfo != null) {
161
- var uappenv = options.userInfo("APPENV", options);
162
- if (uappenv != null) {
163
- allAppEnv.APPENV = _objectSpread(_objectSpread({}, allAppEnv.APPENV), uappenv);
164
- }
165
- }
166
- allAppEnv.credentials = options.credentials;
167
- var s = "let LOGONPAYLOAD = ".concat(JSON.stringify(allAppEnv.LOGONPAYLOAD), ";") + "let APPENV = ".concat(JSON.stringify(allAppEnv.APPENV), ";");
168
- if (process.env.SHOWENV != null) {
169
- console.log(s);
153
+ handler: function () {
154
+ var _handler3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(req, h) {
155
+ var allAppEnv, uappenv, s;
156
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
157
+ while (1) switch (_context3.prev = _context3.next) {
158
+ case 0:
159
+ allAppEnv = options.allAppEnv;
160
+ if (options.userInfo != null) {
161
+ uappenv = options.userInfo("APPENV", options);
162
+ if (uappenv != null) {
163
+ allAppEnv.APPENV = _objectSpread(_objectSpread({}, allAppEnv.APPENV), uappenv);
164
+ }
165
+ }
166
+ allAppEnv.credentials = options.credentials;
167
+ s = "let LOGONPAYLOAD = ".concat(JSON.stringify(allAppEnv.LOGONPAYLOAD), ";") + "let APPENV = ".concat(JSON.stringify(allAppEnv.APPENV), ";");
168
+ if (process.env.SHOWENV != null) {
169
+ console.log(s);
170
+ }
171
+ debug(s);
172
+ return _context3.abrupt("return", s);
173
+ case 7:
174
+ case "end":
175
+ return _context3.stop();
176
+ }
177
+ }, _callee3);
178
+ }));
179
+ function handler(_x5, _x6) {
180
+ return _handler3.apply(this, arguments);
170
181
  }
171
- debug(s);
172
- return s;
173
- }
182
+ return handler;
183
+ }()
174
184
  }
175
185
  }, {
176
186
  method: ["GET"],
177
187
  path: "/appenv",
178
188
  options: {
179
189
  auth: /*authDefault*/false,
180
- handler: function handler(req, h) {
181
- var allAppEnv = options.allAppEnv;
182
- if (options.userInfo != null) {
183
- var uappenv = options.userInfo("APPENV", options);
184
- if (uappenv != null) {
185
- allAppEnv.APPENV = _objectSpread(_objectSpread({}, allAppEnv.APPENV), uappenv);
186
- }
187
- }
188
- allAppEnv.credentials = options.credentials;
189
- var s = "let LOGONPAYLOAD = ".concat(JSON.stringify(allAppEnv.LOGONPAYLOAD), ";") + "let APPENV = ".concat(JSON.stringify(allAppEnv.APPENV), ";");
190
- if (process.env.SHOWENV != null) {
191
- debug(options.allAppEnv);
190
+ handler: function () {
191
+ var _handler4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(req, h) {
192
+ var allAppEnv, uappenv, s;
193
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
194
+ while (1) switch (_context4.prev = _context4.next) {
195
+ case 0:
196
+ allAppEnv = options.allAppEnv;
197
+ if (options.userInfo != null) {
198
+ uappenv = options.userInfo("APPENV", options);
199
+ if (uappenv != null) {
200
+ allAppEnv.APPENV = _objectSpread(_objectSpread({}, allAppEnv.APPENV), uappenv);
201
+ }
202
+ }
203
+ allAppEnv.credentials = options.credentials;
204
+ s = "let LOGONPAYLOAD = ".concat(JSON.stringify(allAppEnv.LOGONPAYLOAD), ";") + "let APPENV = ".concat(JSON.stringify(allAppEnv.APPENV), ";");
205
+ if (process.env.SHOWENV != null) {
206
+ debug(options.allAppEnv);
207
+ }
208
+ debug(s);
209
+ return _context4.abrupt("return", s);
210
+ case 7:
211
+ case "end":
212
+ return _context4.stop();
213
+ }
214
+ }, _callee4);
215
+ }));
216
+ function handler(_x7, _x8) {
217
+ return _handler4.apply(this, arguments);
192
218
  }
193
- debug(s);
194
- return s;
195
- }
219
+ return handler;
220
+ }()
196
221
  }
197
222
  },
198
223
  /*
@@ -30,6 +30,7 @@ var SASauth = require('./SASauth');
30
30
  var appCookie = require('./appCookie');
31
31
  var token = require('./token');
32
32
  var setDefaultRoutes = require('./setDefaultRoutes');
33
+ var log = require('debug')('auth');
33
34
 
34
35
  /** Notes:
35
36
  * If api then register sasAuth and token - no cookies
@@ -69,7 +70,7 @@ function _setupAuth() {
69
70
  case 9:
70
71
  def = 'token';
71
72
  case 10:
72
- server.log('***********************Default auth', def);
73
+ log('***********************Default auth', def);
73
74
  server.auth["default"](def);
74
75
  // console.log(server.registerations);
75
76
  case 12:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sassoftware/viya-serverjs",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "Easy to use app server for SAS Viya applications",
5
5
  "author": "Deva Kumaraswamy <deva.kumar@sas.com>",
6
6
  "license": "Apache-2.0",
package/public/index.html CHANGED
@@ -66,8 +66,13 @@
66
66
 
67
67
  <script>
68
68
  debugger;
69
+ console.log(JSON.stringify(APPENV, null, 4));
69
70
  let store = restaf.initStore({
70
- casProxy: true});
71
+ casProxy: true,
72
+ options: {
73
+ proxyServer: APPENV.PROXYSERVER,
74
+ }
75
+ });
71
76
  debugger; console.log(store.config);
72
77
 
73
78
  let session = null;
@@ -126,6 +131,7 @@
126
131
  return 'done';
127
132
  }
128
133
  let msg = await store.logon(LOGONPAYLOAD);
134
+ console.log(store.connection());
129
135
  console.log(msg);
130
136
 
131
137
  // let { identities } = await store.addServices('identities');
@@ -216,7 +222,7 @@
216
222
  return true;
217
223
  }
218
224
  async function runCas(store) {
219
-
225
+ debugger;
220
226
  let {casManagement} = await store.addServices('casManagement');
221
227
  let servers = await store.apiCall(
222
228
  casManagement.links('servers')
@@ -125,6 +125,7 @@
125
125
 
126
126
  console.log(LOGONPAYLOAD);
127
127
  debugger;
128
+ LOGONPAYLOAD.host = 'https://localhost:8080';
128
129
  let msg = await store.logon(LOGONPAYLOAD);
129
130
  console.log(msg);
130
131
 
package/server.js CHANGED
@@ -4,15 +4,7 @@
4
4
  */
5
5
  let core = require('./lib/index.js');
6
6
  debugger;
7
- core(getCustomHandler, true, 'app', customize);
8
- function customize(key, _options) {
9
- debugger;
10
- let info = {
11
- SWAGGEROPTIONS: {},
12
- APPENV: null,
13
- };
14
- return info[key];
15
- }
7
+ core(getCustomHandler, true, 'app', null);
16
8
 
17
9
  function getCustomHandler() {
18
10
  let appName = `/${process.env.APPNAME}`; /* does not have to be this - your choice */
@@ -41,121 +33,18 @@ function getCustomHandler() {
41
33
  path: `${appName}/new`,
42
34
  options: {
43
35
  files: {
44
- relativeTo: process.env.APPDIR,
36
+ relativeTo: "./public",
45
37
  },
46
38
  handler: async (req, h) => {
47
- console.log('in new');
48
- let q = req.pre.context;
49
- console.log('query', q.query);
50
- console.log('queryOrig', q.queryOrig);
51
- let hf = null;
52
- if (q.query != null) {
53
- let app = q.query;
54
- if (app.edit != null) {
55
- hf = app.edit + '/design.html';
56
- } else if (app.view != null) {
57
- hf = app.view + '/index.html';
58
- }
59
- }
60
- console.log('hf=', hf);
61
- if (hf === null) {
62
- hf = getIndex();
63
- return h.response(hf).header('contentType', 'text/html');
64
- } else {
65
- return h.file(hf);
66
- }
67
-
39
+ console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>in new');
40
+ return h.file('index.html');
68
41
  },
69
42
  // auth: 'logon',
70
43
  description: "Create new application",
71
44
  notes: "Index file created from env data",
72
45
  tags: ["app"],
73
46
  },
74
- },
75
- {
76
- method: ["GET"],
77
- path: `${appName}/ntest/{app?}`,
78
- options: {
79
-
80
- handler: async (req, h) => {
81
- params = req.params;
82
- console.log('params', params.app);
83
- let hf = req.pre.context.queryOrig.app;
84
- console.log('hf=', hf);
85
- return h.file('help.html');
86
- },
87
- // auth: 'logon',
88
- description: "App Route",
89
- notes: "Default App Route",
90
- tags: ["app"],
91
- },
92
- },
93
- {
94
- method: ["GET"],
95
- path: `${appName}/view`,
96
- options: {
97
-
98
- handler: async (req, h) => {
99
- let hf = req.pre.context.queryOrig.app;
100
- console.log('hf=', hf);
101
- return h.file('help.html');
102
- },
103
- // auth: 'logon',
104
- description: "App Route",
105
- notes: "Default App Route",
106
- tags: ["app"],
107
- },
108
- },
109
- {
110
- method: ["GET"],
111
- path: `${appName}/edit`,
112
- options: {
113
- files: {
114
- relativeTo: process.env.APPDIR,
115
- },
116
- handler: async (req, h) => {
117
- let hf = req.pre.context.queryOrig.app;
118
- console.log('hf=', hf);
119
- return h.file(hf + '/design.html');
120
- },
121
- // auth: 'logon',
122
- description: "App Route",
123
- notes: "Default App Route",
124
- tags: ["app"],
125
- },
126
- },
127
- {
128
- method: ["GET"],
129
- path: `${appName}/test`,
130
- options: {
131
- handler: async (req, h) => {
132
- debugger;
133
- console.log("++++++++++++++++++++++ in post");
134
- let context = req.pre.context;
135
- console.log(context);
136
- let loc = req.context.queryOrig.h;
137
- console.log(loc);
138
- return h.file(loc);
139
- },
140
- auth: false,
141
- description:
142
- "Another test",
143
- notes: "second test",
144
- tags: ["api"],
145
- },
146
- },
147
- {
148
- method: ["GET"],
149
- path: `${appName}/{param*}`,
150
-
151
- options: {
152
- handler: async (req, h) => {
153
- console.log('in get param');
154
- console.log(req.params);
155
- return ('hi');
156
- },
157
- }
158
- },
47
+ }
159
48
  ];
160
49
  return routes;
161
50
  }
@@ -6,7 +6,8 @@ async function proxyMapUri (req) {
6
6
  console.log('sid=', sid);
7
7
  }
8
8
 
9
- let path = process.env.PROXYSERVER;
9
+ // let path = process.env.PROXYSERVER;
10
+ let path = (process.env.PROXYSERVER == null) ? process.env.VIYA_SERVER : process.env.PROXYSERVER;
10
11
  console.log('proxying to= ', path);
11
12
  let params = req.params;
12
13
  console.log('params=', params);
@@ -22,32 +23,3 @@ async function proxyMapUri (req) {
22
23
  };
23
24
  }
24
25
  export default proxyMapUri;
25
-
26
- /*
27
- let qsstring = req.raw.search;
28
- console.log('qsstring=', qsstring);
29
- let query = req.query;
30
- let newQuery = null;
31
-
32
- if (query != null) {
33
- console.log('query=', query);
34
- newQuery = {};
35
- for (let key in query) {
36
- let value = query[key];
37
- if (value === 'true' || value === 'false') {
38
- value = value === 'true';
39
- }
40
- newQuery[key] = value;
41
- }
42
- console.log('newQuery=', newQuery);
43
- }
44
- console.log(req.URLSearchParams);
45
- let uri = path + '/' + params.param;
46
- if (newQuery != null) {
47
- uri = `${uri}?${new URLSearchParams(newQuery)}`;
48
- }
49
- console.log('req.url', req.url);
50
- console.log('req.url', req.url.search);
51
- console.log('uri=', req.uri);
52
- console.log('path=', req.path);
53
- */
@@ -8,8 +8,10 @@ let debug = require('debug')('setcookies');
8
8
  async function setCookies (req, h, options) {
9
9
  let credentials = req.auth.credentials;
10
10
  debug('setcookie', credentials);
11
- debug('setcookie', credentials);
11
+
12
12
  if (credentials != null && req.auth.error != null) {
13
+ debug('setcookie credentials', credentials);
14
+ debug('setcookie error', req.auth.error);
13
15
  debug('logon failed');
14
16
  return { status: false, error: req.auth.error };
15
17
  }
package/src/iService.js CHANGED
@@ -152,6 +152,7 @@ function iService (userRouteTable, useDefault, asset, allAppEnv, serverMode, use
152
152
  */
153
153
 
154
154
  // setup authentication related plugins
155
+
155
156
  let options = {
156
157
  serverMode : serverMode,
157
158
  authFlow : process.env.AUTHFLOW,