@microsoft/teamsfx-core 1.11.0 → 1.11.1-alpha.10d9b00a6.0

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 (549) hide show
  1. package/build/common/local/index.d.ts +1 -0
  2. package/build/common/local/index.d.ts.map +1 -1
  3. package/build/common/local/index.js +1 -0
  4. package/build/common/local/index.js.map +1 -1
  5. package/build/common/local/localCertificateManager.d.ts +1 -0
  6. package/build/common/local/localCertificateManager.d.ts.map +1 -1
  7. package/build/common/local/localCertificateManager.js +2 -0
  8. package/build/common/local/localCertificateManager.js.map +1 -1
  9. package/build/common/local/localTelemetryReporter.d.ts +69 -0
  10. package/build/common/local/localTelemetryReporter.d.ts.map +1 -0
  11. package/build/common/local/localTelemetryReporter.js +118 -0
  12. package/build/common/local/localTelemetryReporter.js.map +1 -0
  13. package/build/common/local/projectSettingsHelper.d.ts.map +1 -1
  14. package/build/common/local/projectSettingsHelper.js +20 -4
  15. package/build/common/local/projectSettingsHelper.js.map +1 -1
  16. package/build/common/projectSettingsHelperV3.d.ts +6 -0
  17. package/build/common/projectSettingsHelperV3.d.ts.map +1 -1
  18. package/build/common/projectSettingsHelperV3.js +33 -1
  19. package/build/common/projectSettingsHelperV3.js.map +1 -1
  20. package/build/common/telemetry.d.ts +2 -1
  21. package/build/common/telemetry.d.ts.map +1 -1
  22. package/build/common/telemetry.js +1 -0
  23. package/build/common/telemetry.js.map +1 -1
  24. package/build/common/templates-config.json +2 -2
  25. package/build/common/tools.d.ts +2 -5
  26. package/build/common/tools.d.ts.map +1 -1
  27. package/build/common/tools.js +17 -9
  28. package/build/common/tools.js.map +1 -1
  29. package/build/common/utils.d.ts +1 -0
  30. package/build/common/utils.d.ts.map +1 -1
  31. package/build/common/utils.js +11 -2
  32. package/build/common/utils.js.map +1 -1
  33. package/build/component/bicep.d.ts.map +1 -1
  34. package/build/component/bicep.js +0 -8
  35. package/build/component/bicep.js.map +1 -1
  36. package/build/component/code/botCode.d.ts +7 -2
  37. package/build/component/code/botCode.d.ts.map +1 -1
  38. package/build/component/code/botCode.js +94 -40
  39. package/build/component/code/botCode.js.map +1 -1
  40. package/build/component/code/tabCode.d.ts +10 -0
  41. package/build/component/code/tabCode.d.ts.map +1 -1
  42. package/build/component/code/tabCode.js +121 -0
  43. package/build/component/code/tabCode.js.map +1 -1
  44. package/build/component/connection/azureFunctionConfig.d.ts +10 -0
  45. package/build/component/connection/azureFunctionConfig.d.ts.map +1 -1
  46. package/build/component/connection/azureFunctionConfig.js +33 -0
  47. package/build/component/connection/azureFunctionConfig.js.map +1 -1
  48. package/build/component/connection/azureResourceConfig.d.ts +11 -0
  49. package/build/component/connection/azureResourceConfig.d.ts.map +1 -0
  50. package/build/component/connection/azureResourceConfig.js +77 -0
  51. package/build/component/connection/azureResourceConfig.js.map +1 -0
  52. package/build/component/connection/azureWebAppConfig.d.ts +4 -1
  53. package/build/component/connection/azureWebAppConfig.d.ts.map +1 -1
  54. package/build/component/connection/azureWebAppConfig.js +14 -63
  55. package/build/component/connection/azureWebAppConfig.js.map +1 -1
  56. package/build/component/constants.d.ts +60 -0
  57. package/build/component/constants.d.ts.map +1 -1
  58. package/build/component/constants.js +62 -2
  59. package/build/component/constants.js.map +1 -1
  60. package/build/component/core.d.ts +2 -1
  61. package/build/component/core.d.ts.map +1 -1
  62. package/build/component/core.js +68 -126
  63. package/build/component/core.js.map +1 -1
  64. package/build/component/debug.d.ts +4 -2
  65. package/build/component/debug.d.ts.map +1 -1
  66. package/build/component/debug.js +133 -16
  67. package/build/component/debug.js.map +1 -1
  68. package/build/component/envManager.d.ts +0 -2
  69. package/build/component/envManager.d.ts.map +1 -1
  70. package/build/component/envManager.js +84 -63
  71. package/build/component/envManager.js.map +1 -1
  72. package/build/component/feature/apiConnector.d.ts +17 -0
  73. package/build/component/feature/apiConnector.d.ts.map +1 -0
  74. package/build/component/feature/apiConnector.js +40 -0
  75. package/build/component/feature/apiConnector.js.map +1 -0
  76. package/build/component/feature/bot.d.ts +1 -0
  77. package/build/component/feature/bot.d.ts.map +1 -1
  78. package/build/component/feature/bot.js +29 -8
  79. package/build/component/feature/bot.js.map +1 -1
  80. package/build/component/feature/cicd.d.ts +15 -0
  81. package/build/component/feature/cicd.d.ts.map +1 -0
  82. package/build/component/feature/cicd.js +121 -0
  83. package/build/component/feature/cicd.js.map +1 -0
  84. package/build/component/feature/sql.d.ts +4 -2
  85. package/build/component/feature/sql.d.ts.map +1 -1
  86. package/build/component/feature/sql.js +25 -2
  87. package/build/component/feature/sql.js.map +1 -1
  88. package/build/component/feature/tab.d.ts.map +1 -1
  89. package/build/component/feature/tab.js +59 -57
  90. package/build/component/feature/tab.js.map +1 -1
  91. package/build/component/fx/preDeployAction.d.ts +7 -0
  92. package/build/component/fx/preDeployAction.d.ts.map +1 -0
  93. package/build/component/fx/preDeployAction.js +32 -0
  94. package/build/component/fx/preDeployAction.js.map +1 -0
  95. package/build/component/fx/preProvisionAction.d.ts +7 -0
  96. package/build/component/fx/preProvisionAction.d.ts.map +1 -0
  97. package/build/component/fx/preProvisionAction.js +63 -0
  98. package/build/component/fx/preProvisionAction.js.map +1 -0
  99. package/build/component/middleware/logger.d.ts +20 -0
  100. package/build/component/middleware/logger.d.ts.map +1 -0
  101. package/build/component/middleware/logger.js +50 -0
  102. package/build/component/middleware/logger.js.map +1 -0
  103. package/build/component/middleware/progressbar.d.ts +3 -0
  104. package/build/component/middleware/progressbar.d.ts.map +1 -0
  105. package/build/component/middleware/progressbar.js +22 -0
  106. package/build/component/middleware/progressbar.js.map +1 -0
  107. package/build/component/middleware/runWithCatchError.d.ts +6 -0
  108. package/build/component/middleware/runWithCatchError.d.ts.map +1 -0
  109. package/build/component/middleware/runWithCatchError.js +43 -0
  110. package/build/component/middleware/runWithCatchError.js.map +1 -0
  111. package/build/component/middleware/telemetry.d.ts +37 -0
  112. package/build/component/middleware/telemetry.d.ts.map +1 -0
  113. package/build/component/middleware/telemetry.js +70 -0
  114. package/build/component/middleware/telemetry.js.map +1 -0
  115. package/build/component/middleware/types.d.ts +25 -0
  116. package/build/component/middleware/types.d.ts.map +1 -0
  117. package/build/component/middleware/types.js +5 -0
  118. package/build/component/middleware/types.js.map +1 -0
  119. package/build/component/projectSettingsManager.d.ts +1 -1
  120. package/build/component/projectSettingsManager.d.ts.map +1 -1
  121. package/build/component/projectSettingsManager.js +7 -3
  122. package/build/component/projectSettingsManager.js.map +1 -1
  123. package/build/component/resource/appManifest/appManifest.d.ts +2 -1
  124. package/build/component/resource/appManifest/appManifest.d.ts.map +1 -1
  125. package/build/component/resource/appManifest/appManifest.js +141 -107
  126. package/build/component/resource/appManifest/appManifest.js.map +1 -1
  127. package/build/component/resource/appManifest/appStudio.d.ts +10 -3
  128. package/build/component/resource/appManifest/appStudio.d.ts.map +1 -1
  129. package/build/component/resource/appManifest/appStudio.js +136 -53
  130. package/build/component/resource/appManifest/appStudio.js.map +1 -1
  131. package/build/component/resource/appManifest/manifestProvider.d.ts +8 -0
  132. package/build/component/resource/appManifest/manifestProvider.d.ts.map +1 -0
  133. package/build/component/resource/appManifest/manifestProvider.js +27 -0
  134. package/build/component/resource/appManifest/manifestProvider.js.map +1 -0
  135. package/build/component/resource/azureFunction.d.ts +5 -3
  136. package/build/component/resource/azureFunction.d.ts.map +1 -1
  137. package/build/component/resource/azureFunction.js +55 -19
  138. package/build/component/resource/azureFunction.js.map +1 -1
  139. package/build/component/resource/azureResource.d.ts +12 -0
  140. package/build/component/resource/azureResource.d.ts.map +1 -0
  141. package/build/component/resource/azureResource.js +62 -0
  142. package/build/component/resource/azureResource.js.map +1 -0
  143. package/build/component/resource/azureSql/actions/configure.d.ts +27 -0
  144. package/build/component/resource/azureSql/actions/configure.d.ts.map +1 -0
  145. package/build/component/resource/azureSql/actions/configure.js +181 -0
  146. package/build/component/resource/azureSql/actions/configure.js.map +1 -0
  147. package/build/component/resource/azureSql/actions/generateBicep.d.ts +3 -0
  148. package/build/component/resource/azureSql/actions/generateBicep.d.ts.map +1 -0
  149. package/build/component/resource/azureSql/actions/generateBicep.js +59 -0
  150. package/build/component/resource/azureSql/actions/generateBicep.js.map +1 -0
  151. package/build/component/resource/azureSql/actions/provision.d.ts +11 -0
  152. package/build/component/resource/azureSql/actions/provision.d.ts.map +1 -0
  153. package/build/component/resource/azureSql/actions/provision.js +76 -0
  154. package/build/component/resource/azureSql/actions/provision.js.map +1 -0
  155. package/build/component/resource/{azureSql.d.ts → azureSql/azureSql.d.ts} +3 -4
  156. package/build/component/resource/azureSql/azureSql.d.ts.map +1 -0
  157. package/build/component/resource/azureSql/azureSql.js +34 -0
  158. package/build/component/resource/azureSql/azureSql.js.map +1 -0
  159. package/build/component/resource/azureSql/clients/management.d.ts +18 -0
  160. package/build/component/resource/azureSql/clients/management.d.ts.map +1 -0
  161. package/build/component/resource/azureSql/clients/management.js +111 -0
  162. package/build/component/resource/azureSql/clients/management.js.map +1 -0
  163. package/build/component/resource/azureSql/clients/sql.d.ts +13 -0
  164. package/build/component/resource/azureSql/clients/sql.d.ts.map +1 -0
  165. package/build/component/resource/azureSql/clients/sql.js +153 -0
  166. package/build/component/resource/azureSql/clients/sql.js.map +1 -0
  167. package/build/component/resource/azureSql/config.d.ts +7 -0
  168. package/build/component/resource/azureSql/config.d.ts.map +1 -0
  169. package/build/component/resource/azureSql/config.js +77 -0
  170. package/build/component/resource/azureSql/config.js.map +1 -0
  171. package/build/component/resource/azureSql/constants.d.ts +85 -0
  172. package/build/component/resource/azureSql/constants.d.ts.map +1 -0
  173. package/build/component/resource/azureSql/constants.js +95 -0
  174. package/build/component/resource/azureSql/constants.js.map +1 -0
  175. package/build/component/resource/azureSql/errors.d.ts +63 -0
  176. package/build/component/resource/azureSql/errors.d.ts.map +1 -0
  177. package/build/component/resource/azureSql/errors.js +107 -0
  178. package/build/component/resource/azureSql/errors.js.map +1 -0
  179. package/build/component/resource/azureSql/index.d.ts +2 -0
  180. package/build/component/resource/azureSql/index.d.ts.map +1 -0
  181. package/build/component/resource/azureSql/index.js +7 -0
  182. package/build/component/resource/azureSql/index.js.map +1 -0
  183. package/build/component/resource/azureSql/questions.d.ts +5 -0
  184. package/build/component/resource/azureSql/questions.d.ts.map +1 -0
  185. package/build/component/resource/azureSql/questions.js +48 -0
  186. package/build/component/resource/azureSql/questions.js.map +1 -0
  187. package/build/component/resource/azureSql/results.d.ts +10 -0
  188. package/build/component/resource/azureSql/results.d.ts.map +1 -0
  189. package/build/component/resource/azureSql/results.js +34 -0
  190. package/build/component/resource/azureSql/results.js.map +1 -0
  191. package/build/component/resource/azureSql/types.d.ts +12 -0
  192. package/build/component/resource/azureSql/types.d.ts.map +1 -0
  193. package/build/component/resource/azureSql/types.js +5 -0
  194. package/build/component/resource/azureSql/types.js.map +1 -0
  195. package/build/component/resource/azureSql/utils/checkInput.d.ts +10 -0
  196. package/build/component/resource/azureSql/utils/checkInput.d.ts.map +1 -0
  197. package/build/component/resource/azureSql/utils/checkInput.js +89 -0
  198. package/build/component/resource/azureSql/utils/checkInput.js.map +1 -0
  199. package/build/component/resource/azureSql/utils/common.d.ts +12 -0
  200. package/build/component/resource/azureSql/utils/common.d.ts.map +1 -0
  201. package/build/component/resource/azureSql/utils/common.js +51 -0
  202. package/build/component/resource/azureSql/utils/common.js.map +1 -0
  203. package/build/component/resource/azureStorage.d.ts +16 -3
  204. package/build/component/resource/azureStorage.d.ts.map +1 -1
  205. package/build/component/resource/azureStorage.js +51 -28
  206. package/build/component/resource/azureStorage.js.map +1 -1
  207. package/build/component/resource/azureWebApp.d.ts +8 -3
  208. package/build/component/resource/azureWebApp.d.ts.map +1 -1
  209. package/build/component/resource/azureWebApp.js +39 -35
  210. package/build/component/resource/azureWebApp.js.map +1 -1
  211. package/build/component/resource/botService.d.ts.map +1 -1
  212. package/build/component/resource/botService.js +26 -13
  213. package/build/component/resource/botService.js.map +1 -1
  214. package/build/component/resource/identity.d.ts +22 -0
  215. package/build/component/resource/identity.d.ts.map +1 -0
  216. package/build/component/resource/identity.js +24 -0
  217. package/build/component/resource/identity.js.map +1 -0
  218. package/build/component/utils.d.ts +5 -4
  219. package/build/component/utils.d.ts.map +1 -1
  220. package/build/component/utils.js +31 -15
  221. package/build/component/utils.js.map +1 -1
  222. package/build/component/workflow.d.ts.map +1 -1
  223. package/build/component/workflow.js +25 -15
  224. package/build/component/workflow.js.map +1 -1
  225. package/build/core/FxCore.d.ts +1 -0
  226. package/build/core/FxCore.d.ts.map +1 -1
  227. package/build/core/FxCore.js +67 -47
  228. package/build/core/FxCore.js.map +1 -1
  229. package/build/core/collaborator.d.ts.map +1 -1
  230. package/build/core/collaborator.js +14 -8
  231. package/build/core/collaborator.js.map +1 -1
  232. package/build/core/middleware/projectSettingsLoader.d.ts.map +1 -1
  233. package/build/core/middleware/projectSettingsLoader.js +9 -5
  234. package/build/core/middleware/projectSettingsLoader.js.map +1 -1
  235. package/build/core/middleware/questionModel.js +1 -1
  236. package/build/core/middleware/questionModel.js.map +1 -1
  237. package/build/core/middleware/questionModelV3.d.ts.map +1 -1
  238. package/build/core/middleware/questionModelV3.js +125 -5
  239. package/build/core/middleware/questionModelV3.js.map +1 -1
  240. package/build/core/question.d.ts +3 -2
  241. package/build/core/question.d.ts.map +1 -1
  242. package/build/core/question.js +3 -2
  243. package/build/core/question.js.map +1 -1
  244. package/build/plugins/resource/aad/aadAppClient.d.ts +3 -3
  245. package/build/plugins/resource/aad/aadAppClient.d.ts.map +1 -1
  246. package/build/plugins/resource/aad/aadAppClient.js +4 -4
  247. package/build/plugins/resource/aad/aadAppClient.js.map +1 -1
  248. package/build/plugins/resource/aad/plugin.d.ts.map +1 -1
  249. package/build/plugins/resource/aad/plugin.js +11 -11
  250. package/build/plugins/resource/aad/plugin.js.map +1 -1
  251. package/build/plugins/resource/aad/utils/configs.d.ts +3 -2
  252. package/build/plugins/resource/aad/utils/configs.d.ts.map +1 -1
  253. package/build/plugins/resource/aad/utils/configs.js +16 -23
  254. package/build/plugins/resource/aad/utils/configs.js.map +1 -1
  255. package/build/plugins/resource/aad/utils/tokenProvider.d.ts +2 -3
  256. package/build/plugins/resource/aad/utils/tokenProvider.d.ts.map +1 -1
  257. package/build/plugins/resource/aad/utils/tokenProvider.js +9 -4
  258. package/build/plugins/resource/aad/utils/tokenProvider.js.map +1 -1
  259. package/build/plugins/resource/aad/v3/index.d.ts.map +1 -1
  260. package/build/plugins/resource/aad/v3/index.js +6 -8
  261. package/build/plugins/resource/aad/v3/index.js.map +1 -1
  262. package/build/plugins/resource/apiconnector/plugin.d.ts.map +1 -1
  263. package/build/plugins/resource/apiconnector/plugin.js +40 -18
  264. package/build/plugins/resource/apiconnector/plugin.js.map +1 -1
  265. package/build/plugins/resource/apim/factory.d.ts +4 -4
  266. package/build/plugins/resource/apim/factory.d.ts.map +1 -1
  267. package/build/plugins/resource/apim/factory.js +10 -7
  268. package/build/plugins/resource/apim/factory.js.map +1 -1
  269. package/build/plugins/resource/apim/index.js +6 -4
  270. package/build/plugins/resource/apim/index.js.map +1 -1
  271. package/build/plugins/resource/apim/v3/index.d.ts.map +1 -1
  272. package/build/plugins/resource/apim/v3/index.js +5 -4
  273. package/build/plugins/resource/apim/v3/index.js.map +1 -1
  274. package/build/plugins/resource/appstudio/appStudio.d.ts +0 -4
  275. package/build/plugins/resource/appstudio/appStudio.d.ts.map +1 -1
  276. package/build/plugins/resource/appstudio/appStudio.js +41 -64
  277. package/build/plugins/resource/appstudio/appStudio.js.map +1 -1
  278. package/build/plugins/resource/appstudio/constants.d.ts +4 -4
  279. package/build/plugins/resource/appstudio/constants.d.ts.map +1 -1
  280. package/build/plugins/resource/appstudio/constants.js +25 -25
  281. package/build/plugins/resource/appstudio/constants.js.map +1 -1
  282. package/build/plugins/resource/appstudio/errors.d.ts +1 -1
  283. package/build/plugins/resource/appstudio/errors.d.ts.map +1 -1
  284. package/build/plugins/resource/appstudio/errors.js +3 -1
  285. package/build/plugins/resource/appstudio/errors.js.map +1 -1
  286. package/build/plugins/resource/appstudio/index.d.ts.map +1 -1
  287. package/build/plugins/resource/appstudio/index.js +16 -7
  288. package/build/plugins/resource/appstudio/index.js.map +1 -1
  289. package/build/plugins/resource/appstudio/manifestTemplate.d.ts.map +1 -1
  290. package/build/plugins/resource/appstudio/manifestTemplate.js +12 -11
  291. package/build/plugins/resource/appstudio/manifestTemplate.js.map +1 -1
  292. package/build/plugins/resource/appstudio/plugin.d.ts.map +1 -1
  293. package/build/plugins/resource/appstudio/plugin.js +98 -42
  294. package/build/plugins/resource/appstudio/plugin.js.map +1 -1
  295. package/build/plugins/resource/appstudio/utils/utils.d.ts +4 -0
  296. package/build/plugins/resource/appstudio/utils/utils.d.ts.map +1 -1
  297. package/build/plugins/resource/appstudio/utils/utils.js +34 -1
  298. package/build/plugins/resource/appstudio/utils/utils.js.map +1 -1
  299. package/build/plugins/resource/appstudio/v2/index.d.ts +2 -2
  300. package/build/plugins/resource/appstudio/v2/index.d.ts.map +1 -1
  301. package/build/plugins/resource/appstudio/v2/index.js +1 -1
  302. package/build/plugins/resource/appstudio/v2/index.js.map +1 -1
  303. package/build/plugins/resource/appstudio/v3/index.d.ts +5 -5
  304. package/build/plugins/resource/appstudio/v3/index.d.ts.map +1 -1
  305. package/build/plugins/resource/appstudio/v3/index.js +10 -6
  306. package/build/plugins/resource/appstudio/v3/index.js.map +1 -1
  307. package/build/plugins/resource/bot/appStudio/appStudio.d.ts.map +1 -1
  308. package/build/plugins/resource/bot/appStudio/appStudio.js +15 -2
  309. package/build/plugins/resource/bot/appStudio/appStudio.js.map +1 -1
  310. package/build/plugins/resource/bot/configs/scaffoldConfig.d.ts +2 -1
  311. package/build/plugins/resource/bot/configs/scaffoldConfig.d.ts.map +1 -1
  312. package/build/plugins/resource/bot/configs/scaffoldConfig.js +7 -7
  313. package/build/plugins/resource/bot/configs/scaffoldConfig.js.map +1 -1
  314. package/build/plugins/resource/bot/functionsHostedBot/plugin.d.ts.map +1 -1
  315. package/build/plugins/resource/bot/functionsHostedBot/plugin.js +2 -1
  316. package/build/plugins/resource/bot/functionsHostedBot/plugin.js.map +1 -1
  317. package/build/plugins/resource/bot/index.d.ts.map +1 -1
  318. package/build/plugins/resource/bot/index.js +19 -47
  319. package/build/plugins/resource/bot/index.js.map +1 -1
  320. package/build/plugins/resource/bot/languageStrategy.d.ts.map +1 -1
  321. package/build/plugins/resource/bot/languageStrategy.js +2 -1
  322. package/build/plugins/resource/bot/languageStrategy.js.map +1 -1
  323. package/build/plugins/resource/bot/plugin.d.ts.map +1 -1
  324. package/build/plugins/resource/bot/plugin.js +30 -9
  325. package/build/plugins/resource/bot/plugin.js.map +1 -1
  326. package/build/plugins/resource/bot/question.d.ts +8 -6
  327. package/build/plugins/resource/bot/question.d.ts.map +1 -1
  328. package/build/plugins/resource/bot/question.js +42 -61
  329. package/build/plugins/resource/bot/question.js.map +1 -1
  330. package/build/plugins/resource/bot/resources/strings.d.ts +0 -5
  331. package/build/plugins/resource/bot/resources/strings.d.ts.map +1 -1
  332. package/build/plugins/resource/bot/resources/strings.js +1 -5
  333. package/build/plugins/resource/bot/resources/strings.js.map +1 -1
  334. package/build/plugins/resource/bot/utils/retryHandler.d.ts +1 -1
  335. package/build/plugins/resource/bot/utils/retryHandler.d.ts.map +1 -1
  336. package/build/plugins/resource/bot/utils/retryHandler.js +1 -3
  337. package/build/plugins/resource/bot/utils/retryHandler.js.map +1 -1
  338. package/build/plugins/resource/bot/v2/common.d.ts +3 -1
  339. package/build/plugins/resource/bot/v2/common.d.ts.map +1 -1
  340. package/build/plugins/resource/bot/v2/common.js +23 -9
  341. package/build/plugins/resource/bot/v2/common.js.map +1 -1
  342. package/build/plugins/resource/bot/v2/enum.d.ts +5 -1
  343. package/build/plugins/resource/bot/v2/enum.d.ts.map +1 -1
  344. package/build/plugins/resource/bot/v2/enum.js +7 -2
  345. package/build/plugins/resource/bot/v2/enum.js.map +1 -1
  346. package/build/plugins/resource/bot/v2/mapping.d.ts +2 -0
  347. package/build/plugins/resource/bot/v2/mapping.d.ts.map +1 -1
  348. package/build/plugins/resource/bot/v2/mapping.js +27 -10
  349. package/build/plugins/resource/bot/v2/mapping.js.map +1 -1
  350. package/build/plugins/resource/bot/v2/plugin.d.ts.map +1 -1
  351. package/build/plugins/resource/bot/v2/plugin.js +2 -0
  352. package/build/plugins/resource/bot/v2/plugin.js.map +1 -1
  353. package/build/plugins/resource/bot/v3/index.d.ts.map +1 -1
  354. package/build/plugins/resource/bot/v3/index.js +16 -5
  355. package/build/plugins/resource/bot/v3/index.js.map +1 -1
  356. package/build/plugins/resource/cicd/index.d.ts.map +1 -1
  357. package/build/plugins/resource/cicd/index.js +9 -67
  358. package/build/plugins/resource/cicd/index.js.map +1 -1
  359. package/build/plugins/resource/cicd/plugin.d.ts +1 -2
  360. package/build/plugins/resource/cicd/plugin.d.ts.map +1 -1
  361. package/build/plugins/resource/cicd/plugin.js +3 -8
  362. package/build/plugins/resource/cicd/plugin.js.map +1 -1
  363. package/build/plugins/resource/cicd/providers/provider.d.ts +2 -2
  364. package/build/plugins/resource/cicd/providers/provider.d.ts.map +1 -1
  365. package/build/plugins/resource/cicd/providers/provider.js +28 -10
  366. package/build/plugins/resource/cicd/providers/provider.js.map +1 -1
  367. package/build/plugins/resource/frontend/dotnet/plugin.d.ts.map +1 -1
  368. package/build/plugins/resource/frontend/dotnet/plugin.js +6 -3
  369. package/build/plugins/resource/frontend/dotnet/plugin.js.map +1 -1
  370. package/build/plugins/resource/function/v3/index.d.ts.map +1 -1
  371. package/build/plugins/resource/function/v3/index.js +2 -1
  372. package/build/plugins/resource/function/v3/index.js.map +1 -1
  373. package/build/plugins/resource/simpleauth/plugin.js +1 -1
  374. package/build/plugins/resource/simpleauth/plugin.js.map +1 -1
  375. package/build/plugins/resource/spfx/depsChecker/generatorChecker.d.ts +0 -1
  376. package/build/plugins/resource/spfx/depsChecker/generatorChecker.d.ts.map +1 -1
  377. package/build/plugins/resource/spfx/depsChecker/generatorChecker.js +0 -14
  378. package/build/plugins/resource/spfx/depsChecker/generatorChecker.js.map +1 -1
  379. package/build/plugins/resource/spfx/depsChecker/yoChecker.d.ts +0 -2
  380. package/build/plugins/resource/spfx/depsChecker/yoChecker.d.ts.map +1 -1
  381. package/build/plugins/resource/spfx/depsChecker/yoChecker.js +1 -43
  382. package/build/plugins/resource/spfx/depsChecker/yoChecker.js.map +1 -1
  383. package/build/plugins/resource/spfx/error.d.ts +2 -0
  384. package/build/plugins/resource/spfx/error.d.ts.map +1 -1
  385. package/build/plugins/resource/spfx/error.js +9 -1
  386. package/build/plugins/resource/spfx/error.js.map +1 -1
  387. package/build/plugins/resource/spfx/index.d.ts.map +1 -1
  388. package/build/plugins/resource/spfx/index.js +4 -2
  389. package/build/plugins/resource/spfx/index.js.map +1 -1
  390. package/build/plugins/resource/spfx/plugin.d.ts.map +1 -1
  391. package/build/plugins/resource/spfx/plugin.js +15 -13
  392. package/build/plugins/resource/spfx/plugin.js.map +1 -1
  393. package/build/plugins/resource/spfx/utils/constants.d.ts +3 -0
  394. package/build/plugins/resource/spfx/utils/constants.d.ts.map +1 -1
  395. package/build/plugins/resource/spfx/utils/constants.js +3 -0
  396. package/build/plugins/resource/spfx/utils/constants.js.map +1 -1
  397. package/build/plugins/resource/spfx/utils/questions.d.ts +3 -1
  398. package/build/plugins/resource/spfx/utils/questions.d.ts.map +1 -1
  399. package/build/plugins/resource/spfx/utils/questions.js +28 -2
  400. package/build/plugins/resource/spfx/utils/questions.js.map +1 -1
  401. package/build/plugins/resource/spfx/utils/utils.d.ts +4 -0
  402. package/build/plugins/resource/spfx/utils/utils.d.ts.map +1 -1
  403. package/build/plugins/resource/spfx/utils/utils.js +37 -0
  404. package/build/plugins/resource/spfx/utils/utils.js.map +1 -1
  405. package/build/plugins/resource/spfx/v3/plugin.d.ts.map +1 -1
  406. package/build/plugins/resource/spfx/v3/plugin.js +18 -13
  407. package/build/plugins/resource/spfx/v3/plugin.js.map +1 -1
  408. package/build/plugins/resource/utils4v2.d.ts.map +1 -1
  409. package/build/plugins/resource/utils4v2.js +9 -19
  410. package/build/plugins/resource/utils4v2.js.map +1 -1
  411. package/build/plugins/solution/fx-solution/arm.d.ts.map +1 -1
  412. package/build/plugins/solution/fx-solution/arm.js +2 -5
  413. package/build/plugins/solution/fx-solution/arm.js.map +1 -1
  414. package/build/plugins/solution/fx-solution/commonQuestions.d.ts.map +1 -1
  415. package/build/plugins/solution/fx-solution/commonQuestions.js +5 -21
  416. package/build/plugins/solution/fx-solution/commonQuestions.js.map +1 -1
  417. package/build/plugins/solution/fx-solution/constants.d.ts +3 -1
  418. package/build/plugins/solution/fx-solution/constants.d.ts.map +1 -1
  419. package/build/plugins/solution/fx-solution/constants.js +2 -0
  420. package/build/plugins/solution/fx-solution/constants.js.map +1 -1
  421. package/build/plugins/solution/fx-solution/debug/scaffolding.d.ts +2 -0
  422. package/build/plugins/solution/fx-solution/debug/scaffolding.d.ts.map +1 -1
  423. package/build/plugins/solution/fx-solution/debug/scaffolding.js +3 -1
  424. package/build/plugins/solution/fx-solution/debug/scaffolding.js.map +1 -1
  425. package/build/plugins/solution/fx-solution/debug/util/tasks.d.ts.map +1 -1
  426. package/build/plugins/solution/fx-solution/debug/util/tasks.js +1 -2
  427. package/build/plugins/solution/fx-solution/debug/util/tasks.js.map +1 -1
  428. package/build/plugins/solution/fx-solution/question.d.ts +1 -0
  429. package/build/plugins/solution/fx-solution/question.d.ts.map +1 -1
  430. package/build/plugins/solution/fx-solution/question.js +4 -2
  431. package/build/plugins/solution/fx-solution/question.js.map +1 -1
  432. package/build/plugins/solution/fx-solution/solution.d.ts.map +1 -1
  433. package/build/plugins/solution/fx-solution/solution.js +89 -69
  434. package/build/plugins/solution/fx-solution/solution.js.map +1 -1
  435. package/build/plugins/solution/fx-solution/v2/adaptor.d.ts +2 -3
  436. package/build/plugins/solution/fx-solution/v2/adaptor.d.ts.map +1 -1
  437. package/build/plugins/solution/fx-solution/v2/adaptor.js +3 -6
  438. package/build/plugins/solution/fx-solution/v2/adaptor.js.map +1 -1
  439. package/build/plugins/solution/fx-solution/v2/checkPermission.js +6 -6
  440. package/build/plugins/solution/fx-solution/v2/checkPermission.js.map +1 -1
  441. package/build/plugins/solution/fx-solution/v2/collaborationUtil.d.ts +3 -3
  442. package/build/plugins/solution/fx-solution/v2/collaborationUtil.d.ts.map +1 -1
  443. package/build/plugins/solution/fx-solution/v2/collaborationUtil.js +7 -5
  444. package/build/plugins/solution/fx-solution/v2/collaborationUtil.js.map +1 -1
  445. package/build/plugins/solution/fx-solution/v2/deploy.d.ts.map +1 -1
  446. package/build/plugins/solution/fx-solution/v2/deploy.js +10 -3
  447. package/build/plugins/solution/fx-solution/v2/deploy.js.map +1 -1
  448. package/build/plugins/solution/fx-solution/v2/executeUserTask.d.ts.map +1 -1
  449. package/build/plugins/solution/fx-solution/v2/executeUserTask.js +7 -1
  450. package/build/plugins/solution/fx-solution/v2/executeUserTask.js.map +1 -1
  451. package/build/plugins/solution/fx-solution/v2/getQuestions.d.ts.map +1 -1
  452. package/build/plugins/solution/fx-solution/v2/getQuestions.js +4 -1
  453. package/build/plugins/solution/fx-solution/v2/getQuestions.js.map +1 -1
  454. package/build/plugins/solution/fx-solution/v2/grantPermission.js +7 -7
  455. package/build/plugins/solution/fx-solution/v2/grantPermission.js.map +1 -1
  456. package/build/plugins/solution/fx-solution/v2/listCollaborator.js +6 -6
  457. package/build/plugins/solution/fx-solution/v2/listCollaborator.js.map +1 -1
  458. package/build/plugins/solution/fx-solution/v2/provision.js +7 -2
  459. package/build/plugins/solution/fx-solution/v2/provision.js.map +1 -1
  460. package/build/plugins/solution/fx-solution/v2/provisionLocal.d.ts.map +1 -1
  461. package/build/plugins/solution/fx-solution/v2/provisionLocal.js +12 -3
  462. package/build/plugins/solution/fx-solution/v2/provisionLocal.js.map +1 -1
  463. package/build/plugins/solution/fx-solution/v2/publish.d.ts +2 -2
  464. package/build/plugins/solution/fx-solution/v2/publish.d.ts.map +1 -1
  465. package/build/plugins/solution/fx-solution/v2/publish.js.map +1 -1
  466. package/build/plugins/solution/fx-solution/v2/solution.d.ts +2 -2
  467. package/build/plugins/solution/fx-solution/v2/solution.d.ts.map +1 -1
  468. package/build/plugins/solution/fx-solution/v2/utils.d.ts +2 -2
  469. package/build/plugins/solution/fx-solution/v2/utils.d.ts.map +1 -1
  470. package/build/plugins/solution/fx-solution/v2/utils.js +9 -3
  471. package/build/plugins/solution/fx-solution/v2/utils.js.map +1 -1
  472. package/build/plugins/solution/fx-solution/v3/addFeature.d.ts.map +1 -1
  473. package/build/plugins/solution/fx-solution/v3/provision.d.ts +2 -2
  474. package/build/plugins/solution/fx-solution/v3/provision.d.ts.map +1 -1
  475. package/build/plugins/solution/fx-solution/v3/provision.js +13 -8
  476. package/build/plugins/solution/fx-solution/v3/provision.js.map +1 -1
  477. package/build/plugins/solution/fx-solution/v3/publish.d.ts +3 -3
  478. package/build/plugins/solution/fx-solution/v3/publish.d.ts.map +1 -1
  479. package/build/plugins/solution/fx-solution/v3/publish.js.map +1 -1
  480. package/build/plugins/solution/fx-solution/v3/solution.d.ts +2 -2
  481. package/build/plugins/solution/fx-solution/v3/solution.d.ts.map +1 -1
  482. package/build/plugins/solution/fx-solution/v3/solution.js.map +1 -1
  483. package/build/plugins/solution/spfx-solution/addFeature.d.ts +2 -2
  484. package/build/plugins/solution/spfx-solution/addFeature.d.ts.map +1 -1
  485. package/build/plugins/solution/spfx-solution/addFeature.js.map +1 -1
  486. package/package.json +4 -4
  487. package/resource/package.nls.cs.json +884 -641
  488. package/resource/package.nls.de.json +884 -641
  489. package/resource/package.nls.es.json +884 -641
  490. package/resource/package.nls.fr.json +884 -641
  491. package/resource/package.nls.it.json +884 -641
  492. package/resource/package.nls.ja.json +884 -641
  493. package/resource/package.nls.json +11 -2
  494. package/resource/package.nls.ko.json +884 -641
  495. package/resource/package.nls.pl.json +884 -641
  496. package/resource/package.nls.pt-BR.json +884 -641
  497. package/resource/package.nls.ru.json +884 -641
  498. package/resource/package.nls.tr.json +884 -641
  499. package/resource/package.nls.zh-Hans.json +884 -641
  500. package/resource/package.nls.zh-Hant.json +884 -641
  501. package/templates/bicep/azureFunction.config.module.bicep +62 -0
  502. package/templates/bicep/azureFunction.config.orchestration.bicep +12 -0
  503. package/templates/bicep/azureFunction.parameters.json +4 -0
  504. package/templates/bicep/azureFunction.provision.module.bicep +97 -0
  505. package/templates/bicep/azureFunction.provision.orchestration.bicep +17 -0
  506. package/templates/bicep/azureSql.provisionDatabase.orchestration.bicep +1 -1
  507. package/templates/bicep/azureStorage.provision.module.bicep +25 -0
  508. package/templates/bicep/azureStorage.provision.orchestration.bicep +15 -0
  509. package/templates/bicep/azureWebApp.provision.module.bicep +12 -5
  510. package/templates/bicep/identity.provision.module.bicep +15 -0
  511. package/templates/bicep/identity.provision.orchestration.bicep +14 -0
  512. package/templates/bicep/main.bicep +1 -1
  513. package/templates/fallback/bot.csharp.command-and-response.zip +0 -0
  514. package/templates/fallback/bot.csharp.default.zip +0 -0
  515. package/templates/fallback/bot.csharp.notification-function-base.zip +0 -0
  516. package/templates/fallback/bot.csharp.notification-trigger-http.zip +0 -0
  517. package/templates/fallback/bot.csharp.notification-trigger-timer.zip +0 -0
  518. package/templates/fallback/bot.csharp.notification-webapi.zip +0 -0
  519. package/templates/fallback/bot.js.command-and-response.zip +0 -0
  520. package/templates/fallback/bot.js.default.zip +0 -0
  521. package/templates/fallback/bot.js.m365.zip +0 -0
  522. package/templates/fallback/bot.js.notification-function-base.zip +0 -0
  523. package/templates/fallback/bot.js.notification-restify.zip +0 -0
  524. package/templates/fallback/bot.js.notification-trigger-http.zip +0 -0
  525. package/templates/fallback/bot.js.notification-trigger-timer.zip +0 -0
  526. package/templates/fallback/bot.ts.command-and-response.zip +0 -0
  527. package/templates/fallback/bot.ts.default.zip +0 -0
  528. package/templates/fallback/bot.ts.m365.zip +0 -0
  529. package/templates/fallback/bot.ts.notification-function-base.zip +0 -0
  530. package/templates/fallback/bot.ts.notification-restify.zip +0 -0
  531. package/templates/fallback/bot.ts.notification-trigger-http.zip +0 -0
  532. package/templates/fallback/bot.ts.notification-trigger-timer.zip +0 -0
  533. package/templates/fallback/function-base.js.default.zip +0 -0
  534. package/templates/fallback/function-base.ts.default.zip +0 -0
  535. package/templates/fallback/function-triggers.js.HTTPTrigger.zip +0 -0
  536. package/templates/fallback/function-triggers.ts.HTTPTrigger.zip +0 -0
  537. package/templates/fallback/tab.csharp.default.zip +0 -0
  538. package/templates/fallback/tab.js.default.zip +0 -0
  539. package/templates/fallback/tab.js.m365.zip +0 -0
  540. package/templates/fallback/tab.js.non-sso.zip +0 -0
  541. package/templates/fallback/tab.ts.default.zip +0 -0
  542. package/templates/fallback/tab.ts.m365.zip +0 -0
  543. package/templates/fallback/tab.ts.non-sso.zip +0 -0
  544. package/templates/plugins/resource/hosting/bicep/function/functionProvision.template.bicep +12 -6
  545. package/build/component/resource/azureSql.d.ts.map +0 -1
  546. package/build/component/resource/azureSql.js +0 -119
  547. package/build/component/resource/azureSql.js.map +0 -1
  548. package/templates/fallback/blazor-base.csharp.default.zip +0 -0
  549. package/templates/fallback/bot.ts.notification.zip +0 -0
@@ -0,0 +1,27 @@
1
+ import { ContextV3, InputsWithProjectPath, FunctionAction, ProvisionContextV3, v3, AzureAccountProvider, LogProvider, Result, FxError, Effect, QTreeNode } from "@microsoft/teamsfx-api";
2
+ import { ManagementClient } from "../clients/management";
3
+ import { SqlClient } from "../clients/sql";
4
+ import { TokenInfo } from "../utils/common";
5
+ export declare class ConfigureActionImplement {
6
+ static readonly source = "SQL";
7
+ static readonly stage = "post-provision";
8
+ static readonly telemetryComponentName = "fx-resource-azure-sql";
9
+ static readonly progressTitle = "Configuring SQL";
10
+ static readonly progressMessage: {
11
+ addAadmin: string;
12
+ addUser: string;
13
+ };
14
+ static readonly loggerPrefix = "[SQL Component]";
15
+ static readonly logFormatter: (message: string) => string;
16
+ static execute(context: ContextV3, inputs: InputsWithProjectPath): Promise<Result<Effect[], FxError>>;
17
+ static get(): FunctionAction;
18
+ }
19
+ export declare class UtilFunctions {
20
+ static CheckAndSetAadAdmin(client: ManagementClient, aadAdmin: string, objectId: string, tenantId: string): Promise<boolean>;
21
+ static parseLoginToken(azureAccountProvider: AzureAccountProvider): Promise<TokenInfo>;
22
+ static getSkipAddingUser(config: v3.AzureSolutionConfig, azureAccountProvider: AzureAccountProvider): Promise<boolean>;
23
+ static getIdentity(ctx: ProvisionContextV3): string;
24
+ static addDatabaseUser(logProvider: LogProvider, sqlClient: SqlClient, managementClient: ManagementClient): Promise<void>;
25
+ static buildQuestionNode(): QTreeNode;
26
+ }
27
+ //# sourceMappingURL=configure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../../../../../src/component/resource/azureSql/actions/configure.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,SAAS,EACT,qBAAqB,EAErB,cAAc,EACd,kBAAkB,EAClB,EAAE,EACF,oBAAoB,EACpB,WAAW,EACX,MAAM,EACN,OAAO,EACP,MAAM,EACN,SAAS,EACV,MAAM,wBAAwB,CAAC;AAahC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAM3C,OAAO,EAAc,SAAS,EAAY,MAAM,iBAAiB,CAAC;AAClE,qBAAa,wBAAwB;IACnC,MAAM,CAAC,QAAQ,CAAC,MAAM,SAAS;IAC/B,MAAM,CAAC,QAAQ,CAAC,KAAK,oBAAoB;IACzC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,2BAA2B;IACjE,MAAM,CAAC,QAAQ,CAAC,aAAa,qBAAqB;IAClD,MAAM,CAAC,QAAQ,CAAC,eAAe;;;MAG7B;IACF,MAAM,CAAC,QAAQ,CAAC,YAAY,qBAAqB;IACjD,MAAM,CAAC,QAAQ,CAAC,YAAY,YAAa,MAAM,YACS;WAiB3C,OAAO,CAClB,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;IAwErC,MAAM,CAAC,GAAG,IAAI,cAAc;CAU7B;AAED,qBAAa,aAAa;WACX,mBAAmB,CAC9B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC;WAQN,eAAe,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;WAgB/E,iBAAiB,CAC5B,MAAM,EAAE,EAAE,CAAC,mBAAmB,EAC9B,oBAAoB,EAAE,oBAAoB,GACzC,OAAO,CAAC,OAAO,CAAC;IASnB,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM;WAatC,eAAe,CAC1B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,IAAI,CAAC;IAgChB,MAAM,CAAC,iBAAiB;CASzB"}
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.UtilFunctions = exports.ConfigureActionImplement = void 0;
6
+ const tslib_1 = require("tslib");
7
+ const lib_1 = require("@feathersjs/hooks/lib");
8
+ const teamsfx_api_1 = require("@microsoft/teamsfx-api");
9
+ const typedi_1 = tslib_1.__importDefault(require("typedi"));
10
+ const constants_1 = require("../../../constants");
11
+ const logger_1 = require("../../../middleware/logger");
12
+ const progressbar_1 = require("../../../middleware/progressbar");
13
+ const runWithCatchError_1 = require("../../../middleware/runWithCatchError");
14
+ const telemetry_1 = require("../../../middleware/telemetry");
15
+ const management_1 = require("../clients/management");
16
+ const sql_1 = require("../clients/sql");
17
+ const config_1 = require("../config");
18
+ const constants_2 = require("../constants");
19
+ const errors_1 = require("../errors");
20
+ const questions_1 = require("../questions");
21
+ const results_1 = require("../results");
22
+ const common_1 = require("../utils/common");
23
+ class ConfigureActionImplement {
24
+ static async execute(context, inputs) {
25
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
26
+ const ctx = context;
27
+ const actionContext = context;
28
+ const solutionConfig = ctx.envInfo.state.solution;
29
+ const state = ctx.envInfo.state[constants_1.ComponentNames.AzureSQL];
30
+ const sqlMgrConfig = config_1.LoadManagementConfig(state);
31
+ const sqlMgrClient = await management_1.ManagementClient.create(ctx.tokenProvider.azureAccountProvider, sqlMgrConfig);
32
+ (_a = actionContext.logger) === null || _a === void 0 ? void 0 : _a.info(constants_2.Message.addFirewall);
33
+ await sqlMgrClient.addLocalFirewallRule();
34
+ const adminInfo = await UtilFunctions.parseLoginToken(ctx.tokenProvider.azureAccountProvider);
35
+ (_b = actionContext.progressBar) === null || _b === void 0 ? void 0 : _b.next(ConfigureActionImplement.progressMessage.addAadmin);
36
+ const existAdmin = await UtilFunctions.CheckAndSetAadAdmin(sqlMgrClient, adminInfo.name, adminInfo.objectId, solutionConfig.tenantId);
37
+ if (existAdmin) {
38
+ (_c = actionContext.logger) === null || _c === void 0 ? void 0 : _c.info(constants_2.Message.skipAddAadAdmin);
39
+ }
40
+ else {
41
+ (_d = actionContext.logger) === null || _d === void 0 ? void 0 : _d.info(constants_2.Message.addSqlAadAdmin);
42
+ }
43
+ // update outputKeys
44
+ const databases = config_1.loadDatabases(state);
45
+ const resource = typedi_1.default.get(constants_1.ComponentNames.AzureSQL);
46
+ resource.finalOutputKeys.push(...Object.keys(databases));
47
+ const identity = UtilFunctions.getIdentity(ctx);
48
+ const sqlConfig = config_1.LoadSqlConfig(state, identity);
49
+ const skipAddingUser = await UtilFunctions.getSkipAddingUser(solutionConfig, ctx.tokenProvider.azureAccountProvider);
50
+ (_e = actionContext.telemetry) === null || _e === void 0 ? void 0 : _e.addProperty(constants_2.Telemetry.properties.skipAddingUser, skipAddingUser ? constants_1.TelemetryConstants.values.yes : constants_1.TelemetryConstants.values.no);
51
+ (_f = actionContext.telemetry) === null || _f === void 0 ? void 0 : _f.addProperty(constants_2.Telemetry.properties.dbCount, sqlConfig.databases.length.toString());
52
+ if (!skipAddingUser) {
53
+ if (adminInfo.userType === common_1.UserType.User) {
54
+ (_g = actionContext.progressBar) === null || _g === void 0 ? void 0 : _g.next(ConfigureActionImplement.progressMessage.addUser);
55
+ const sqlClient = await sql_1.SqlClient.create(ctx.tokenProvider.azureAccountProvider, sqlConfig);
56
+ (_h = ctx.logProvider) === null || _h === void 0 ? void 0 : _h.info(constants_2.Message.addDatabaseUser(identity));
57
+ await UtilFunctions.addDatabaseUser(ctx.logProvider, sqlClient, sqlMgrClient);
58
+ }
59
+ else {
60
+ const message = errors_1.ErrorMessage.ServicePrincipalWarning(identity, sqlConfig.databases.join(","));
61
+ (_j = actionContext.logger) === null || _j === void 0 ? void 0 : _j.warning(`${message}. You can follow ${constants_2.HelpLinks.default} to add database user ${identity}`);
62
+ }
63
+ }
64
+ else {
65
+ (_k = actionContext.logger) === null || _k === void 0 ? void 0 : _k.warning(`Skip adding database user. You can follow ${constants_2.HelpLinks.default} to add database user ${identity}`);
66
+ }
67
+ await sqlMgrClient.deleteLocalFirewallRule();
68
+ return teamsfx_api_1.ok([{ type: "service", name: "azure", remarks: "configure azure-sql" }]);
69
+ }
70
+ static get() {
71
+ return {
72
+ name: `${constants_1.ComponentNames.AzureSQL}.${constants_1.ActionNames.configure}`,
73
+ type: constants_1.ActionTypeFunction,
74
+ plan: (context, inputs) => {
75
+ return teamsfx_api_1.ok([{ type: "service", name: "azure", remarks: "configure azure-sql" }]);
76
+ },
77
+ execute: ConfigureActionImplement.execute,
78
+ };
79
+ }
80
+ }
81
+ ConfigureActionImplement.source = "SQL";
82
+ ConfigureActionImplement.stage = "post-provision";
83
+ ConfigureActionImplement.telemetryComponentName = "fx-resource-azure-sql";
84
+ ConfigureActionImplement.progressTitle = "Configuring SQL";
85
+ ConfigureActionImplement.progressMessage = {
86
+ addAadmin: "Configure aad admin for SQL",
87
+ addUser: "Configure database user",
88
+ };
89
+ ConfigureActionImplement.loggerPrefix = "[SQL Component]";
90
+ ConfigureActionImplement.logFormatter = (message) => `${ConfigureActionImplement.loggerPrefix} ${message}`;
91
+ tslib_1.__decorate([
92
+ lib_1.hooks([
93
+ telemetry_1.TelemetryMW(telemetry_1.ActionTelemetryImplement.bind(null, ConfigureActionImplement.stage, ConfigureActionImplement.telemetryComponentName)),
94
+ runWithCatchError_1.RunWithCatchErrorMW(ConfigureActionImplement.source, runWithCatchError_1.ActionErrorHandler),
95
+ progressbar_1.ProgressBarMW(ConfigureActionImplement.progressTitle, Object.keys(ConfigureActionImplement.progressMessage).length),
96
+ logger_1.LoggerMW(logger_1.ActionLogger.bind(null, ConfigureActionImplement.logFormatter)),
97
+ ]),
98
+ tslib_1.__metadata("design:type", Function),
99
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
100
+ tslib_1.__metadata("design:returntype", Promise)
101
+ ], ConfigureActionImplement, "execute", null);
102
+ exports.ConfigureActionImplement = ConfigureActionImplement;
103
+ class UtilFunctions {
104
+ static async CheckAndSetAadAdmin(client, aadAdmin, objectId, tenantId) {
105
+ const existAdmin = await client.existAadAdmin(aadAdmin);
106
+ if (!existAdmin) {
107
+ await client.addAADadmin(tenantId, objectId, aadAdmin);
108
+ }
109
+ return existAdmin;
110
+ }
111
+ static async parseLoginToken(azureAccountProvider) {
112
+ // get login user info to set aad admin in sql
113
+ try {
114
+ const credential = await azureAccountProvider.getAccountCredentialAsync();
115
+ const token = await credential.getToken();
116
+ const accessToken = token.accessToken;
117
+ return common_1.parseToken(accessToken);
118
+ }
119
+ catch (error) {
120
+ throw results_1.SqlResultFactory.SystemError(errors_1.ErrorMessage.SqlUserInfoError.name, errors_1.ErrorMessage.SqlUserInfoError.message(), error);
121
+ }
122
+ }
123
+ static async getSkipAddingUser(config, azureAccountProvider) {
124
+ const skipAddingUser = config[constants_2.Constants.skipAddingSqlUser];
125
+ if (skipAddingUser === undefined) {
126
+ return (await (azureAccountProvider === null || azureAccountProvider === void 0 ? void 0 : azureAccountProvider.getIdentityCredentialAsync())) ? false : true;
127
+ }
128
+ else {
129
+ return skipAddingUser;
130
+ }
131
+ }
132
+ static getIdentity(ctx) {
133
+ const config = ctx.envInfo.state[constants_1.ComponentNames.Identity];
134
+ const identity = config[constants_2.Constants.identityName];
135
+ if (!identity) {
136
+ const error = results_1.SqlResultFactory.SystemError(errors_1.ErrorMessage.SqlGetConfigError.name, errors_1.ErrorMessage.SqlGetConfigError.message(constants_2.Constants.identityPlugin, constants_2.Constants.identityName));
137
+ throw error;
138
+ }
139
+ return identity;
140
+ }
141
+ static async addDatabaseUser(logProvider, sqlClient, managementClient) {
142
+ let retryCount = 0;
143
+ const databaseWithUser = {};
144
+ sqlClient.config.databases.forEach((element) => {
145
+ databaseWithUser[element] = false;
146
+ });
147
+ while (true) {
148
+ try {
149
+ for (const database in databaseWithUser) {
150
+ if (!databaseWithUser[database]) {
151
+ await sqlClient.addDatabaseUser(database);
152
+ databaseWithUser[database] = true;
153
+ }
154
+ }
155
+ return;
156
+ }
157
+ catch (error) {
158
+ if (!sql_1.SqlClient.isFireWallError(error === null || error === void 0 ? void 0 : error.innerError) ||
159
+ retryCount >= constants_2.Constants.maxRetryTimes) {
160
+ throw error;
161
+ }
162
+ else {
163
+ retryCount++;
164
+ logProvider.warning(`[${constants_2.Constants.pluginName}] Retry adding new firewall rule to access azure sql, because the local IP address has changed after added firewall rule for it. [Retry time: ${retryCount}]`);
165
+ await managementClient.addLocalFirewallRule();
166
+ }
167
+ }
168
+ }
169
+ }
170
+ static buildQuestionNode() {
171
+ const sqlNode = new teamsfx_api_1.QTreeNode({
172
+ type: "group",
173
+ });
174
+ sqlNode.addChild(new teamsfx_api_1.QTreeNode(questions_1.adminNameQuestion));
175
+ sqlNode.addChild(new teamsfx_api_1.QTreeNode(questions_1.adminPasswordQuestion));
176
+ sqlNode.addChild(new teamsfx_api_1.QTreeNode(questions_1.confirmPasswordQuestion));
177
+ return sqlNode;
178
+ }
179
+ }
180
+ exports.UtilFunctions = UtilFunctions;
181
+ //# sourceMappingURL=configure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../../../src/component/resource/azureSql/actions/configure.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;AAElC,+CAA8C;AAC9C,wDAagC;AAChC,4DAA+B;AAC/B,kDAK4B;AAC5B,uDAAoE;AACpE,iEAAgE;AAChE,6EAAgG;AAChG,6DAAsF;AAEtF,sDAAyD;AACzD,wCAA2C;AAC3C,sCAA+E;AAC/E,4CAAwE;AACxE,sCAAyC;AACzC,4CAAiG;AACjG,wCAA8C;AAC9C,4CAAkE;AAClE,MAAa,wBAAwB;IA4BnC,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,OAAkB,EAClB,MAA6B;;QAE7B,MAAM,GAAG,GAAG,OAA6B,CAAC;QAC1C,MAAM,aAAa,GAAG,OAAwB,CAAC;QAC/C,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAkC,CAAC;QAC5E,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,0BAAc,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,6BAAoB,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,MAAM,6BAAgB,CAAC,MAAM,CAChD,GAAG,CAAC,aAAa,CAAC,oBAAoB,EACtC,YAAY,CACb,CAAC;QAEF,MAAA,aAAa,CAAC,MAAM,0CAAE,IAAI,CAAC,mBAAO,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,YAAY,CAAC,oBAAoB,EAAE,CAAC;QAE1C,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAC9F,MAAA,aAAa,CAAC,WAAW,0CAAE,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,mBAAmB,CACxD,YAAY,EACZ,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,QAAQ,EAClB,cAAc,CAAC,QAAQ,CACxB,CAAC;QACF,IAAI,UAAU,EAAE;YACd,MAAA,aAAa,CAAC,MAAM,0CAAE,IAAI,CAAC,mBAAO,CAAC,eAAe,CAAC,CAAC;SACrD;aAAM;YACL,MAAA,aAAa,CAAC,MAAM,0CAAE,IAAI,CAAC,mBAAO,CAAC,cAAc,CAAC,CAAC;SACpD;QAED,oBAAoB;QACpB,MAAM,SAAS,GAAG,sBAAa,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,gBAAS,CAAC,GAAG,CAAC,0BAAc,CAAC,QAAQ,CAAQ,CAAC;QAC/D,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAEzD,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,sBAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAC1D,cAAc,EACd,GAAG,CAAC,aAAa,CAAC,oBAAoB,CACvC,CAAC;QACF,MAAA,aAAa,CAAC,SAAS,0CAAE,WAAW,CAClC,qBAAS,CAAC,UAAU,CAAC,cAAc,EACnC,cAAc,CAAC,CAAC,CAAC,8BAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,8BAAkB,CAAC,MAAM,CAAC,EAAE,CAC9E,CAAC;QACF,MAAA,aAAa,CAAC,SAAS,0CAAE,WAAW,CAClC,qBAAS,CAAC,UAAU,CAAC,OAAO,EAC5B,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CACtC,CAAC;QAEF,IAAI,CAAC,cAAc,EAAE;YACnB,IAAI,SAAS,CAAC,QAAQ,KAAK,iBAAQ,CAAC,IAAI,EAAE;gBACxC,MAAA,aAAa,CAAC,WAAW,0CAAE,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAClF,MAAM,SAAS,GAAG,MAAM,eAAS,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;gBAC5F,MAAA,GAAG,CAAC,WAAW,0CAAE,IAAI,CAAC,mBAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACzD,MAAM,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;aAC/E;iBAAM;gBACL,MAAM,OAAO,GAAG,qBAAY,CAAC,uBAAuB,CAClD,QAAQ,EACR,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAC9B,CAAC;gBACF,MAAA,aAAa,CAAC,MAAM,0CAAE,OAAO,CAC3B,GAAG,OAAO,oBAAoB,qBAAS,CAAC,OAAO,yBAAyB,QAAQ,EAAE,CACnF,CAAC;aACH;SACF;aAAM;YACL,MAAA,aAAa,CAAC,MAAM,0CAAE,OAAO,CAC3B,6CAA6C,qBAAS,CAAC,OAAO,yBAAyB,QAAQ,EAAE,CAClG,CAAC;SACH;QACD,MAAM,YAAY,CAAC,uBAAuB,EAAE,CAAC;QAC7C,OAAO,gBAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,CAAC,GAAG;QACR,OAAO;YACL,IAAI,EAAE,GAAG,0BAAc,CAAC,QAAQ,IAAI,uBAAW,CAAC,SAAS,EAAE;YAC3D,IAAI,EAAE,8BAAkB;YACxB,IAAI,EAAE,CAAC,OAAkB,EAAE,MAA6B,EAAE,EAAE;gBAC1D,OAAO,gBAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC;YAClF,CAAC;YACD,OAAO,EAAE,wBAAwB,CAAC,OAAO;SAC1C,CAAC;IACJ,CAAC;;AA/Ge,+BAAM,GAAG,KAAK,CAAC;AACf,8BAAK,GAAG,gBAAgB,CAAC;AACzB,+CAAsB,GAAG,uBAAuB,CAAC;AACjD,sCAAa,GAAG,iBAAiB,CAAC;AAClC,wCAAe,GAAG;IAChC,SAAS,EAAE,6BAA6B;IACxC,OAAO,EAAE,yBAAyB;CACnC,CAAC;AACc,qCAAY,GAAG,iBAAiB,CAAC;AACjC,qCAAY,GAAG,CAAC,OAAe,EAAE,EAAE,CACjD,GAAG,wBAAwB,CAAC,YAAY,IAAI,OAAO,EAAE,CAAC;AAiBxD;IAfC,WAAK,CAAC;QACL,uBAAW,CACT,oCAAwB,CAAC,IAAI,CAC3B,IAAI,EACJ,wBAAwB,CAAC,KAAK,EAC9B,wBAAwB,CAAC,sBAAsB,CAChD,CACF;QACD,uCAAmB,CAAC,wBAAwB,CAAC,MAAM,EAAE,sCAAkB,CAAC;QACxE,2BAAa,CACX,wBAAwB,CAAC,aAAa,EACtC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC,MAAM,CAC7D;QACD,iBAAQ,CAAC,qBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,YAAY,CAAC,CAAC;KACzE,CAAC;;;;6CA0ED;AArGH,4DAiHC;AAED,MAAa,aAAa;IACxB,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAC9B,MAAwB,EACxB,QAAgB,EAChB,QAAgB,EAChB,QAAgB;QAEhB,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;SACxD;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,oBAA0C;QACrE,8CAA8C;QAC9C,IAAI;YACF,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,yBAAyB,EAAE,CAAC;YAC1E,MAAM,KAAK,GAAG,MAAM,UAAW,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YACtC,OAAO,mBAAU,CAAC,WAAW,CAAC,CAAC;SAChC;QAAC,OAAO,KAAU,EAAE;YACnB,MAAM,0BAAgB,CAAC,WAAW,CAChC,qBAAY,CAAC,gBAAgB,CAAC,IAAI,EAClC,qBAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,EACvC,KAAK,CACN,CAAC;SACH;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAC5B,MAA8B,EAC9B,oBAA0C;QAE1C,MAAM,cAAc,GAAG,MAAM,CAAC,qBAAS,CAAC,iBAAiB,CAAC,CAAC;QAC3D,IAAI,cAAc,KAAK,SAAS,EAAE;YAChC,OAAO,CAAC,MAAM,CAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,0BAA0B,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;SAClF;aAAM;YACL,OAAO,cAAyB,CAAC;SAClC;IACH,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAuB;QACxC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,0BAAc,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,qBAAS,CAAC,YAAY,CAAW,CAAC;QAC1D,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,KAAK,GAAG,0BAAgB,CAAC,WAAW,CACxC,qBAAY,CAAC,iBAAiB,CAAC,IAAI,EACnC,qBAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,qBAAS,CAAC,cAAc,EAAE,qBAAS,CAAC,YAAY,CAAC,CACzF,CAAC;YACF,MAAM,KAAK,CAAC;SACb;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe,CAC1B,WAAwB,EACxB,SAAoB,EACpB,gBAAkC;QAElC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,gBAAgB,GAA+B,EAAE,CAAC;QACxD,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7C,gBAAgB,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,EAAE;YACX,IAAI;gBACF,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE;oBACvC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE;wBAC/B,MAAM,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;wBAC1C,gBAAgB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;qBACnC;iBACF;gBACD,OAAO;aACR;YAAC,OAAO,KAAK,EAAE;gBACd,IACE,CAAC,eAAS,CAAC,eAAe,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,CAAC;oBAC7C,UAAU,IAAI,qBAAS,CAAC,aAAa,EACrC;oBACA,MAAM,KAAK,CAAC;iBACb;qBAAM;oBACL,UAAU,EAAE,CAAC;oBACb,WAAW,CAAC,OAAO,CACjB,IAAI,qBAAS,CAAC,UAAU,iJAAiJ,UAAU,GAAG,CACvL,CAAC;oBACF,MAAM,gBAAgB,CAAC,oBAAoB,EAAE,CAAC;iBAC/C;aACF;SACF;IACH,CAAC;IAED,MAAM,CAAC,iBAAiB;QACtB,MAAM,OAAO,GAAG,IAAI,uBAAS,CAAC;YAC5B,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,CAAC,IAAI,uBAAS,CAAC,6BAAiB,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,QAAQ,CAAC,IAAI,uBAAS,CAAC,iCAAqB,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,QAAQ,CAAC,IAAI,uBAAS,CAAC,mCAAuB,CAAC,CAAC,CAAC;QACzD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AApGD,sCAoGC"}
@@ -0,0 +1,3 @@
1
+ import { FunctionAction } from "@microsoft/teamsfx-api";
2
+ export declare function GetActionGenerateBicep(): FunctionAction;
3
+ //# sourceMappingURL=generateBicep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateBicep.d.ts","sourceRoot":"","sources":["../../../../../src/component/resource/azureSql/actions/generateBicep.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,cAAc,EACf,MAAM,wBAAwB,CAAC;AAYhC,wBAAgB,sBAAsB,IAAI,cAAc,CA+CvD"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.GetActionGenerateBicep = void 0;
6
+ const tslib_1 = require("tslib");
7
+ const teamsfx_api_1 = require("@microsoft/teamsfx-api");
8
+ const path = tslib_1.__importStar(require("path"));
9
+ const common_1 = require("../../../../common");
10
+ const folder_1 = require("../../../../folder");
11
+ const constants_1 = require("../../../constants");
12
+ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
13
+ function GetActionGenerateBicep() {
14
+ return {
15
+ name: `${constants_1.ComponentNames.AzureSQL}.${constants_1.ActionNames.generateBicep}`,
16
+ type: constants_1.ActionTypeFunction,
17
+ plan: async (context, inputs) => {
18
+ const bicep = {
19
+ type: "bicep",
20
+ Provision: {
21
+ Modules: { azureSql: constants_1.BicepConstants.writeFile },
22
+ Orchestration: constants_1.BicepConstants.writeFile,
23
+ },
24
+ Parameters: {},
25
+ };
26
+ return teamsfx_api_1.ok([bicep]);
27
+ },
28
+ execute: async (context, inputs) => {
29
+ const prefix = inputs.provisionType === "database"
30
+ ? "azureSql.provisionDatabase"
31
+ : "azureSql.provisionServer";
32
+ const mPath = path.join(folder_1.getTemplatesFolder(), "bicep", `${prefix}.module.bicep`);
33
+ const oPath = path.join(folder_1.getTemplatesFolder(), "bicep", `${prefix}.orchestration.bicep`);
34
+ let module = await fs_extra_1.default.readFile(mPath, "utf-8");
35
+ let orch = await fs_extra_1.default.readFile(oPath, "utf-8");
36
+ const suffix = common_1.getUuid().substring(0, 6);
37
+ const compileCtx = {
38
+ suffix: suffix,
39
+ };
40
+ if (inputs.provisionType === "database") {
41
+ module = await common_1.generateBicepFromFile(mPath, compileCtx);
42
+ orch = await common_1.generateBicepFromFile(oPath, compileCtx);
43
+ }
44
+ const bicep = {
45
+ type: "bicep",
46
+ Provision: {
47
+ Modules: { azureSql: module },
48
+ Orchestration: orch,
49
+ },
50
+ };
51
+ if (inputs.provisionType === "server") {
52
+ bicep.Parameters = await fs_extra_1.default.readJson(path.join(folder_1.getTemplatesFolder(), "bicep", "azureSql.parameters.json"));
53
+ }
54
+ return teamsfx_api_1.ok([bicep]);
55
+ },
56
+ };
57
+ }
58
+ exports.GetActionGenerateBicep = GetActionGenerateBicep;
59
+ //# sourceMappingURL=generateBicep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateBicep.js","sourceRoot":"","sources":["../../../../../src/component/resource/azureSql/actions/generateBicep.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;AAElC,wDAMgC;AAChC,mDAA6B;AAC7B,+CAAoE;AACpE,+CAAwD;AACxD,kDAK4B;AAC5B,gEAA0B;AAE1B,SAAgB,sBAAsB;IACpC,OAAO;QACL,IAAI,EAAE,GAAG,0BAAc,CAAC,QAAQ,IAAI,uBAAW,CAAC,aAAa,EAAE;QAC/D,IAAI,EAAE,8BAAkB;QACxB,IAAI,EAAE,KAAK,EAAE,OAAkB,EAAE,MAA6B,EAAE,EAAE;YAChE,MAAM,KAAK,GAAU;gBACnB,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE;oBACT,OAAO,EAAE,EAAE,QAAQ,EAAE,0BAAc,CAAC,SAAS,EAAE;oBAC/C,aAAa,EAAE,0BAAc,CAAC,SAAS;iBACxC;gBACD,UAAU,EAAE,EAAE;aACf,CAAC;YACF,OAAO,gBAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAkB,EAAE,MAA6B,EAAE,EAAE;YACnE,MAAM,MAAM,GACV,MAAM,CAAC,aAAa,KAAK,UAAU;gBACjC,CAAC,CAAC,4BAA4B;gBAC9B,CAAC,CAAC,0BAA0B,CAAC;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,2BAAkB,EAAE,EAAE,OAAO,EAAE,GAAG,MAAM,eAAe,CAAC,CAAC;YACjF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,2BAAkB,EAAE,EAAE,OAAO,EAAE,GAAG,MAAM,sBAAsB,CAAC,CAAC;YACxF,IAAI,MAAM,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,IAAI,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,gBAAO,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzC,MAAM,UAAU,GAAG;gBACjB,MAAM,EAAE,MAAM;aACf,CAAC;YACF,IAAI,MAAM,CAAC,aAAa,KAAK,UAAU,EAAE;gBACvC,MAAM,GAAG,MAAM,8BAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBACxD,IAAI,GAAG,MAAM,8BAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;aACvD;YACD,MAAM,KAAK,GAAU;gBACnB,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE;oBACT,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;oBAC7B,aAAa,EAAE,IAAI;iBACpB;aACF,CAAC;YACF,IAAI,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE;gBACrC,KAAK,CAAC,UAAU,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAClC,IAAI,CAAC,IAAI,CAAC,2BAAkB,EAAE,EAAE,OAAO,EAAE,0BAA0B,CAAC,CACrE,CAAC;aACH;YACD,OAAO,gBAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC;AA/CD,wDA+CC"}
@@ -0,0 +1,11 @@
1
+ import { ContextV3, InputsWithProjectPath, FunctionAction, Effect, FxError, Result } from "@microsoft/teamsfx-api";
2
+ export declare class ProvisionActionImplement {
3
+ static readonly source = "SQL";
4
+ static readonly stage = "pre-provision";
5
+ static readonly telemetryComponentName = "fx-resource-azure-sql";
6
+ static readonly loggerPrefix = "[SQL Component]";
7
+ static readonly logFormatter: (message: string) => string;
8
+ static execute(context: ContextV3, inputs: InputsWithProjectPath): Promise<Result<Effect[], FxError>>;
9
+ static get(): FunctionAction;
10
+ }
11
+ //# sourceMappingURL=provision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../../../../src/component/resource/azureSql/actions/provision.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,SAAS,EACT,qBAAqB,EAErB,cAAc,EAEd,MAAM,EACN,OAAO,EACP,MAAM,EAEP,MAAM,wBAAwB,CAAC;AAYhC,qBAAa,wBAAwB;IACnC,MAAM,CAAC,QAAQ,CAAC,MAAM,SAAS;IAC/B,MAAM,CAAC,QAAQ,CAAC,KAAK,mBAAmB;IACxC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,2BAA2B;IACjE,MAAM,CAAC,QAAQ,CAAC,YAAY,qBAAqB;IACjD,MAAM,CAAC,QAAQ,CAAC,YAAY,YAAa,MAAM,YACS;WAa3C,OAAO,CAClB,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;IAgCrC,MAAM,CAAC,GAAG,IAAI,cAAc;CAa7B"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.ProvisionActionImplement = void 0;
6
+ const tslib_1 = require("tslib");
7
+ const lib_1 = require("@feathersjs/hooks/lib");
8
+ const teamsfx_api_1 = require("@microsoft/teamsfx-api");
9
+ const constants_1 = require("../../../constants");
10
+ const logger_1 = require("../../../middleware/logger");
11
+ const runWithCatchError_1 = require("../../../middleware/runWithCatchError");
12
+ const telemetry_1 = require("../../../middleware/telemetry");
13
+ const management_1 = require("../clients/management");
14
+ const config_1 = require("../config");
15
+ const constants_2 = require("../constants");
16
+ const errors_1 = require("../errors");
17
+ const results_1 = require("../results");
18
+ const configure_1 = require("./configure");
19
+ class ProvisionActionImplement {
20
+ static async execute(context, inputs) {
21
+ var _a;
22
+ var _b, _c;
23
+ const ctx = context;
24
+ const state = ((_a = (_b = ctx.envInfo.state)[_c = constants_1.ComponentNames.AzureSQL]) !== null && _a !== void 0 ? _a : (_b[_c] = {}));
25
+ config_1.removeDatabases(state);
26
+ let shouldAsk;
27
+ if (state.sqlResourceId) {
28
+ const sqlMgrConfig = config_1.LoadManagementConfig(state);
29
+ const sqlMgrClient = await management_1.ManagementClient.create(ctx.tokenProvider.azureAccountProvider, sqlMgrConfig);
30
+ shouldAsk = !(await sqlMgrClient.existAzureSQL());
31
+ }
32
+ else {
33
+ shouldAsk = true;
34
+ }
35
+ if (shouldAsk) {
36
+ const node = configure_1.UtilFunctions.buildQuestionNode();
37
+ const res = await teamsfx_api_1.traverse(node, inputs, ctx.userInteraction);
38
+ if (res.isErr()) {
39
+ throw results_1.SqlResultFactory.UserError(errors_1.ErrorMessage.SqlAskInputError.name, errors_1.ErrorMessage.SqlAskInputError.message(), res.error);
40
+ }
41
+ state.admin = inputs[constants_2.Constants.questionKey.adminName];
42
+ state.adminPassword = inputs[constants_2.Constants.questionKey.adminPassword];
43
+ }
44
+ return teamsfx_api_1.ok([{ type: "service", name: "azure", remarks: "configure azure-sql" }]);
45
+ }
46
+ static get() {
47
+ return {
48
+ name: `${constants_1.ComponentNames.AzureSQL}.${constants_1.ActionNames.provision}`,
49
+ type: constants_1.ActionTypeFunction,
50
+ question: (context, inputs) => {
51
+ return teamsfx_api_1.ok(undefined);
52
+ },
53
+ plan: (context, inputs) => {
54
+ return teamsfx_api_1.ok(["collect user inputs for sql account"]);
55
+ },
56
+ execute: ProvisionActionImplement.execute,
57
+ };
58
+ }
59
+ }
60
+ ProvisionActionImplement.source = "SQL";
61
+ ProvisionActionImplement.stage = "pre-provision";
62
+ ProvisionActionImplement.telemetryComponentName = "fx-resource-azure-sql";
63
+ ProvisionActionImplement.loggerPrefix = "[SQL Component]";
64
+ ProvisionActionImplement.logFormatter = (message) => `${ProvisionActionImplement.loggerPrefix} ${message}`;
65
+ tslib_1.__decorate([
66
+ lib_1.hooks([
67
+ telemetry_1.TelemetryMW(telemetry_1.ActionTelemetryImplement.bind(null, ProvisionActionImplement.stage, ProvisionActionImplement.telemetryComponentName)),
68
+ runWithCatchError_1.RunWithCatchErrorMW(ProvisionActionImplement.source, runWithCatchError_1.ActionErrorHandler),
69
+ logger_1.LoggerMW(logger_1.ActionLogger.bind(null, ProvisionActionImplement.logFormatter)),
70
+ ]),
71
+ tslib_1.__metadata("design:type", Function),
72
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
73
+ tslib_1.__metadata("design:returntype", Promise)
74
+ ], ProvisionActionImplement, "execute", null);
75
+ exports.ProvisionActionImplement = ProvisionActionImplement;
76
+ //# sourceMappingURL=provision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provision.js","sourceRoot":"","sources":["../../../../../src/component/resource/azureSql/actions/provision.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import { FxError, Result, Action, CloudResource, ContextV3, MaybePromise, InputsWithProjectPath } from "@microsoft/teamsfx-api";
2
2
  import "reflect-metadata";
3
3
  export declare class AzureSqlResource implements CloudResource {
4
- readonly type = "cloud";
5
- readonly name = "azure-sql";
6
- outputs: {
4
+ readonly name: string;
5
+ readonly outputs: {
7
6
  sqlResourceId: {
8
7
  key: string;
9
8
  bicepVariable: string;
@@ -17,7 +16,7 @@ export declare class AzureSqlResource implements CloudResource {
17
16
  bicepVariable: string;
18
17
  };
19
18
  };
20
- finalOutputKeys: string[];
19
+ readonly finalOutputKeys: string[];
21
20
  generateBicep(context: ContextV3, inputs: InputsWithProjectPath): MaybePromise<Result<Action | undefined, FxError>>;
22
21
  provision(context: ContextV3, inputs: InputsWithProjectPath): MaybePromise<Result<Action | undefined, FxError>>;
23
22
  configure(context: ContextV3, inputs: InputsWithProjectPath): MaybePromise<Result<Action | undefined, FxError>>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azureSql.d.ts","sourceRoot":"","sources":["../../../../src/component/resource/azureSql/azureSql.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EAEP,MAAM,EACN,MAAM,EACN,aAAa,EACb,SAAS,EACT,YAAY,EACZ,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,kBAAkB,CAAC;AAM1B,qBACa,gBAAiB,YAAW,aAAa;IACpD,QAAQ,CAAC,IAAI,SAA2B;IACxC,QAAQ,CAAC,OAAO;;;;;;;;;;;;;MAAmB;IACnC,QAAQ,CAAC,eAAe,WAAiD;IACzE,aAAa,CACX,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,qBAAqB,GAC5B,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC;IAGpD,SAAS,CACP,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,qBAAqB,GAC5B,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC;IAGpD,SAAS,CACP,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,qBAAqB,GAC5B,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC;CAGrD"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.AzureSqlResource = void 0;
6
+ const tslib_1 = require("tslib");
7
+ const teamsfx_api_1 = require("@microsoft/teamsfx-api");
8
+ require("reflect-metadata");
9
+ const typedi_1 = require("typedi");
10
+ const constants_1 = require("../../constants");
11
+ const configure_1 = require("./actions/configure");
12
+ const generateBicep_1 = require("./actions/generateBicep");
13
+ const provision_1 = require("./actions/provision");
14
+ let AzureSqlResource = class AzureSqlResource {
15
+ constructor() {
16
+ this.name = constants_1.ComponentNames.AzureSQL;
17
+ this.outputs = constants_1.AzureSqlOutputs;
18
+ this.finalOutputKeys = ["sqlResourceId", "endpoint", "databaseName"];
19
+ }
20
+ generateBicep(context, inputs) {
21
+ return teamsfx_api_1.ok(generateBicep_1.GetActionGenerateBicep());
22
+ }
23
+ provision(context, inputs) {
24
+ return teamsfx_api_1.ok(provision_1.ProvisionActionImplement.get());
25
+ }
26
+ configure(context, inputs) {
27
+ return teamsfx_api_1.ok(configure_1.ConfigureActionImplement.get());
28
+ }
29
+ };
30
+ AzureSqlResource = tslib_1.__decorate([
31
+ typedi_1.Service("azure-sql")
32
+ ], AzureSqlResource);
33
+ exports.AzureSqlResource = AzureSqlResource;
34
+ //# sourceMappingURL=azureSql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azureSql.js","sourceRoot":"","sources":["../../../../src/component/resource/azureSql/azureSql.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;AAElC,wDASgC;AAChC,4BAA0B;AAC1B,mCAAiC;AACjC,+CAAkE;AAClE,mDAA+D;AAC/D,2DAAiE;AACjE,mDAA+D;AAE/D,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAA7B;QACW,SAAI,GAAG,0BAAc,CAAC,QAAQ,CAAC;QAC/B,YAAO,GAAG,2BAAe,CAAC;QAC1B,oBAAe,GAAG,CAAC,eAAe,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IAmB3E,CAAC;IAlBC,aAAa,CACX,OAAkB,EAClB,MAA6B;QAE7B,OAAO,gBAAE,CAAC,sCAAsB,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,SAAS,CACP,OAAkB,EAClB,MAA6B;QAE7B,OAAO,gBAAE,CAAC,oCAAwB,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,SAAS,CACP,OAAkB,EAClB,MAA6B;QAE7B,OAAO,gBAAE,CAAC,oCAAwB,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5C,CAAC;CACF,CAAA;AAtBY,gBAAgB;IAD5B,gBAAO,CAAC,WAAW,CAAC;GACR,gBAAgB,CAsB5B;AAtBY,4CAAgB"}
@@ -0,0 +1,18 @@
1
+ import { SqlManagementClient } from "@azure/arm-sql";
2
+ import { AzureAccountProvider } from "@microsoft/teamsfx-api";
3
+ import { ManagementConfig } from "../types";
4
+ export declare class ManagementClient {
5
+ manager: SqlManagementClient;
6
+ config: ManagementConfig;
7
+ totalFirewallRuleCount: number;
8
+ private constructor();
9
+ static create(azureAccountProvider: AzureAccountProvider, config: ManagementConfig): Promise<ManagementClient>;
10
+ existAzureSQL(): Promise<boolean>;
11
+ existAadAdmin(aadAdmin: string): Promise<boolean>;
12
+ addAADadmin(tenantId: string, aadAdminObjectId: string, aadAdmin: string): Promise<void>;
13
+ addLocalFirewallRule(): Promise<void>;
14
+ deleteLocalFirewallRule(): Promise<void>;
15
+ getRuleName(suffix: number): string;
16
+ delay(s: number): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=management.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"management.d.ts","sourceRoot":"","sources":["../../../../../src/component/resource/azureSql/clients/management.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAuB,MAAM,gBAAgB,CAAC;AAK1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,qBAAa,gBAAgB;IAC3B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,sBAAsB,SAAK;IAE3B,OAAO;WAKa,MAAM,CACxB,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,gBAAgB,CAAC;IAMtB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAmBjC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBjD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBxF,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkCrC,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB9C,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI7B,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGtC"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.ManagementClient = void 0;
6
+ const tslib_1 = require("tslib");
7
+ const arm_sql_1 = require("@azure/arm-sql");
8
+ const axios_1 = tslib_1.__importDefault(require("axios"));
9
+ const errors_1 = require("../errors");
10
+ const constants_1 = require("../constants");
11
+ const results_1 = require("../results");
12
+ class ManagementClient {
13
+ constructor(manager, config) {
14
+ this.totalFirewallRuleCount = 0;
15
+ this.manager = manager;
16
+ this.config = config;
17
+ }
18
+ static async create(azureAccountProvider, config) {
19
+ const credential = await azureAccountProvider.getAccountCredentialAsync();
20
+ const manager = new arm_sql_1.SqlManagementClient(credential, config.azureSubscriptionId);
21
+ return new ManagementClient(manager, config);
22
+ }
23
+ async existAzureSQL() {
24
+ try {
25
+ const result = await this.manager.servers.checkNameAvailability({
26
+ name: this.config.sqlServer,
27
+ });
28
+ if (result.available) {
29
+ return false;
30
+ }
31
+ else {
32
+ return true;
33
+ }
34
+ }
35
+ catch (error) {
36
+ throw results_1.SqlResultFactory.SystemError(errors_1.ErrorMessage.SqlCheckError.name, errors_1.ErrorMessage.SqlCheckError.message(this.config.sqlEndpoint, error.message), error);
37
+ }
38
+ }
39
+ async existAadAdmin(aadAdmin) {
40
+ try {
41
+ const result = await this.manager.serverAzureADAdministrators.listByServer(this.config.resourceGroup, this.config.sqlServer);
42
+ if (result.find((item) => item.login === aadAdmin)) {
43
+ return true;
44
+ }
45
+ else {
46
+ return false;
47
+ }
48
+ }
49
+ catch (error) {
50
+ throw results_1.SqlResultFactory.UserError(errors_1.ErrorMessage.SqlCheckAdminError.name, errors_1.ErrorMessage.SqlCheckAdminError.message(this.config.sqlServer, error.message), error);
51
+ }
52
+ }
53
+ async addAADadmin(tenantId, aadAdminObjectId, aadAdmin) {
54
+ let model = {
55
+ tenantId: tenantId,
56
+ sid: aadAdminObjectId,
57
+ login: aadAdmin,
58
+ };
59
+ const tmp = model;
60
+ tmp.administratorType = constants_1.Constants.sqlAdministratorType;
61
+ model = tmp;
62
+ try {
63
+ await this.manager.serverAzureADAdministrators.createOrUpdate(this.config.resourceGroup, this.config.sqlServer, model);
64
+ }
65
+ catch (error) {
66
+ throw results_1.SqlResultFactory.UserError(errors_1.ErrorMessage.SqlAddAdminError.name, errors_1.ErrorMessage.SqlAddAdminError.message(aadAdmin, error.message), error);
67
+ }
68
+ }
69
+ async addLocalFirewallRule() {
70
+ try {
71
+ const response = await axios_1.default.get(constants_1.Constants.echoIpAddress);
72
+ const localIp = response.data;
73
+ const partials = localIp.split(".");
74
+ partials[2] = constants_1.Constants.ipBeginToken;
75
+ partials[3] = constants_1.Constants.ipBeginToken;
76
+ const startIp = partials.join(".");
77
+ partials[2] = constants_1.Constants.ipEndToken;
78
+ partials[3] = constants_1.Constants.ipEndToken;
79
+ const endIp = partials.join(".");
80
+ const model = {
81
+ startIpAddress: startIp,
82
+ endIpAddress: endIp,
83
+ };
84
+ const ruleName = this.getRuleName(this.totalFirewallRuleCount);
85
+ await this.manager.firewallRules.createOrUpdate(this.config.resourceGroup, this.config.sqlServer, ruleName, model);
86
+ this.totalFirewallRuleCount++;
87
+ }
88
+ catch (error) {
89
+ throw results_1.SqlResultFactory.UserError(errors_1.ErrorMessage.SqlLocalFirwallError.name, errors_1.ErrorMessage.SqlLocalFirwallError.message(this.config.sqlEndpoint, error.message), error);
90
+ }
91
+ }
92
+ async deleteLocalFirewallRule() {
93
+ try {
94
+ await Promise.all(Array.from(Array(this.totalFirewallRuleCount).keys()).map(async (i) => {
95
+ const ruleName = this.getRuleName(i);
96
+ await this.manager.firewallRules.deleteMethod(this.config.resourceGroup, this.config.sqlServer, ruleName);
97
+ }));
98
+ }
99
+ catch (error) {
100
+ throw results_1.SqlResultFactory.UserError(errors_1.ErrorMessage.SqlDeleteLocalFirwallError.name, errors_1.ErrorMessage.SqlDeleteLocalFirwallError.message(this.config.sqlEndpoint, error.message), error);
101
+ }
102
+ }
103
+ getRuleName(suffix) {
104
+ return constants_1.Constants.firewall.localRule + suffix;
105
+ }
106
+ async delay(s) {
107
+ return new Promise((resolve) => setTimeout(resolve, s * 1000));
108
+ }
109
+ }
110
+ exports.ManagementClient = ManagementClient;
111
+ //# sourceMappingURL=management.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"management.js","sourceRoot":"","sources":["../../../../../src/component/resource/azureSql/clients/management.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { AzureAccountProvider } from "@microsoft/teamsfx-api";
2
+ import { SqlConfig } from "../types";
3
+ export declare class SqlClient {
4
+ config: SqlConfig;
5
+ token: string;
6
+ private constructor();
7
+ static create(azureAccountProvider: AzureAccountProvider, config: SqlConfig): Promise<SqlClient>;
8
+ addDatabaseUser(database: string): Promise<void>;
9
+ static initToken(azureAccountProvider: AzureAccountProvider, config: SqlConfig): Promise<string>;
10
+ doQuery(cmd: string, database: string): Promise<any[]>;
11
+ static isFireWallError(error: any): boolean;
12
+ }
13
+ //# sourceMappingURL=sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../../../src/component/resource/azureSql/clients/sql.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,qBAAa,SAAS;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IAEd,OAAO;WAKM,MAAM,CACjB,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,SAAS,CAAC;IAKf,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WA8CzC,SAAS,CACpB,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,MAAM,CAAC;IAyDZ,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;WA2D9C,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;CAMnD"}