@microsoft/teamsfx-core 1.2.0 → 1.2.2-alpha.eb4575da.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 (520) hide show
  1. package/build/common/armInterface.d.ts +0 -20
  2. package/build/common/armInterface.d.ts.map +1 -1
  3. package/build/common/deps-checker/depsChecker.d.ts +1 -0
  4. package/build/common/deps-checker/depsChecker.d.ts.map +1 -1
  5. package/build/common/deps-checker/depsChecker.js.map +1 -1
  6. package/build/common/deps-checker/depsManager.d.ts +2 -1
  7. package/build/common/deps-checker/depsManager.d.ts.map +1 -1
  8. package/build/common/deps-checker/depsManager.js +12 -7
  9. package/build/common/deps-checker/depsManager.js.map +1 -1
  10. package/build/common/deps-checker/index.d.ts +1 -0
  11. package/build/common/deps-checker/index.d.ts.map +1 -1
  12. package/build/common/deps-checker/index.js +1 -0
  13. package/build/common/deps-checker/index.js.map +1 -1
  14. package/build/common/deps-checker/internal/dotnetChecker.d.ts.map +1 -1
  15. package/build/common/deps-checker/internal/dotnetChecker.js +2 -1
  16. package/build/common/deps-checker/internal/dotnetChecker.js.map +1 -1
  17. package/build/common/deps-checker/internal/funcToolChecker.d.ts.map +1 -1
  18. package/build/common/deps-checker/internal/funcToolChecker.js +2 -1
  19. package/build/common/deps-checker/internal/funcToolChecker.js.map +1 -1
  20. package/build/common/deps-checker/internal/ngrokChecker.d.ts +1 -1
  21. package/build/common/deps-checker/internal/ngrokChecker.d.ts.map +1 -1
  22. package/build/common/deps-checker/internal/ngrokChecker.js +2 -4
  23. package/build/common/deps-checker/internal/ngrokChecker.js.map +1 -1
  24. package/build/common/deps-checker/internal/nodeChecker.d.ts +1 -0
  25. package/build/common/deps-checker/internal/nodeChecker.d.ts.map +1 -1
  26. package/build/common/deps-checker/internal/nodeChecker.js +9 -1
  27. package/build/common/deps-checker/internal/nodeChecker.js.map +1 -1
  28. package/build/common/deps-checker/util/extensionInstaller.d.ts +3 -0
  29. package/build/common/deps-checker/util/extensionInstaller.d.ts.map +1 -0
  30. package/build/common/deps-checker/util/extensionInstaller.js +47 -0
  31. package/build/common/deps-checker/util/extensionInstaller.js.map +1 -0
  32. package/build/common/deps-checker/util/index.d.ts +5 -0
  33. package/build/common/deps-checker/util/index.d.ts.map +1 -0
  34. package/build/common/deps-checker/util/index.js +10 -0
  35. package/build/common/deps-checker/util/index.js.map +1 -0
  36. package/build/common/index.d.ts +1 -3
  37. package/build/common/index.d.ts.map +1 -1
  38. package/build/common/index.js +1 -3
  39. package/build/common/index.js.map +1 -1
  40. package/build/common/local/constants.d.ts +5 -0
  41. package/build/common/local/constants.d.ts.map +1 -1
  42. package/build/common/local/constants.js +7 -1
  43. package/build/common/local/constants.js.map +1 -1
  44. package/build/common/local/index.d.ts +5 -0
  45. package/build/common/local/index.d.ts.map +1 -0
  46. package/build/common/local/index.js +10 -0
  47. package/build/common/local/index.js.map +1 -0
  48. package/build/{plugins/solution/fx-solution/debug/util/certificate.d.ts → common/local/localCertificateManager.d.ts} +4 -6
  49. package/build/common/local/localCertificateManager.d.ts.map +1 -0
  50. package/build/{plugins/solution/fx-solution/debug/util/certificate.js → common/local/localCertificateManager.js} +37 -47
  51. package/build/common/local/localCertificateManager.js.map +1 -0
  52. package/build/common/local/localEnvManager.d.ts +6 -2
  53. package/build/common/local/localEnvManager.d.ts.map +1 -1
  54. package/build/common/local/localEnvManager.js +41 -1
  55. package/build/common/local/localEnvManager.js.map +1 -1
  56. package/build/{plugins/solution/fx-solution/debug/util → common/local}/process.d.ts +0 -0
  57. package/build/common/local/process.d.ts.map +1 -0
  58. package/build/{plugins/solution/fx-solution/debug/util → common/local}/process.js +0 -0
  59. package/build/common/local/process.js.map +1 -0
  60. package/build/common/local/projectSettingsHelper.d.ts +5 -5
  61. package/build/common/local/projectSettingsHelper.d.ts.map +1 -1
  62. package/build/common/local/projectSettingsHelper.js +28 -21
  63. package/build/common/local/projectSettingsHelper.js.map +1 -1
  64. package/build/common/local/taskDefinition.d.ts +1 -1
  65. package/build/common/local/taskDefinition.d.ts.map +1 -1
  66. package/build/common/local/taskDefinition.js +6 -4
  67. package/build/common/local/taskDefinition.js.map +1 -1
  68. package/build/common/localSettingsConstants.d.ts +1 -0
  69. package/build/common/localSettingsConstants.d.ts.map +1 -1
  70. package/build/common/localSettingsConstants.js +1 -0
  71. package/build/common/localSettingsConstants.js.map +1 -1
  72. package/build/common/localSettingsProvider.d.ts.map +1 -1
  73. package/build/common/localSettingsProvider.js +1 -0
  74. package/build/common/localSettingsProvider.js.map +1 -1
  75. package/build/common/permissionInterface.d.ts +1 -0
  76. package/build/common/permissionInterface.d.ts.map +1 -1
  77. package/build/common/permissionInterface.js +1 -0
  78. package/build/common/permissionInterface.js.map +1 -1
  79. package/build/common/telemetry.d.ts +7 -2
  80. package/build/common/telemetry.d.ts.map +1 -1
  81. package/build/common/telemetry.js +10 -4
  82. package/build/common/telemetry.js.map +1 -1
  83. package/build/common/{templates.d.ts → template-utils/templates.d.ts} +0 -0
  84. package/build/common/template-utils/templates.d.ts.map +1 -0
  85. package/build/common/{templates.js → template-utils/templates.js} +1 -1
  86. package/build/common/template-utils/templates.js.map +1 -0
  87. package/build/common/{templatesActions.d.ts → template-utils/templatesActions.d.ts} +0 -0
  88. package/build/common/template-utils/templatesActions.d.ts.map +1 -0
  89. package/build/common/{templatesActions.js → template-utils/templatesActions.js} +3 -3
  90. package/build/common/template-utils/templatesActions.js.map +1 -0
  91. package/build/common/{templatesUtils.d.ts → template-utils/templatesUtils.d.ts} +0 -0
  92. package/build/common/template-utils/templatesUtils.d.ts.map +1 -0
  93. package/build/common/{templatesUtils.js → template-utils/templatesUtils.js} +1 -1
  94. package/build/common/template-utils/templatesUtils.js.map +1 -0
  95. package/build/common/tools.d.ts +1 -4
  96. package/build/common/tools.d.ts.map +1 -1
  97. package/build/common/tools.js +41 -12
  98. package/build/common/tools.js.map +1 -1
  99. package/build/core/index.d.ts +2 -2
  100. package/build/core/index.d.ts.map +1 -1
  101. package/build/core/index.js +14 -6
  102. package/build/core/index.js.map +1 -1
  103. package/build/core/middleware/index.d.ts +0 -1
  104. package/build/core/middleware/index.d.ts.map +1 -1
  105. package/build/core/middleware/index.js +0 -1
  106. package/build/core/middleware/index.js.map +1 -1
  107. package/build/core/middleware/projectMigrator.d.ts.map +1 -1
  108. package/build/core/middleware/projectMigrator.js +0 -9
  109. package/build/core/middleware/projectMigrator.js.map +1 -1
  110. package/build/core/permissionRequest.js +2 -2
  111. package/build/core/permissionRequest.js.map +1 -1
  112. package/build/core/question.d.ts.map +1 -1
  113. package/build/core/question.js +7 -4
  114. package/build/core/question.js.map +1 -1
  115. package/build/plugins/resource/aad/aadAppClient.d.ts +2 -2
  116. package/build/plugins/resource/aad/aadAppClient.d.ts.map +1 -1
  117. package/build/plugins/resource/aad/aadAppClient.js +3 -4
  118. package/build/plugins/resource/aad/aadAppClient.js.map +1 -1
  119. package/build/plugins/resource/aad/errors.d.ts.map +1 -1
  120. package/build/plugins/resource/aad/errors.js +1 -2
  121. package/build/plugins/resource/aad/errors.js.map +1 -1
  122. package/build/plugins/resource/aad/interfaces/IAADDefinition.d.ts +4 -0
  123. package/build/plugins/resource/aad/interfaces/IAADDefinition.d.ts.map +1 -1
  124. package/build/plugins/resource/aad/plugin.d.ts.map +1 -1
  125. package/build/plugins/resource/aad/plugin.js +33 -46
  126. package/build/plugins/resource/aad/plugin.js.map +1 -1
  127. package/build/plugins/resource/aad/utils/common.d.ts +2 -0
  128. package/build/plugins/resource/aad/utils/common.d.ts.map +1 -1
  129. package/build/plugins/resource/aad/utils/common.js +14 -14
  130. package/build/plugins/resource/aad/utils/common.js.map +1 -1
  131. package/build/plugins/resource/aad/utils/configs.d.ts +1 -0
  132. package/build/plugins/resource/aad/utils/configs.d.ts.map +1 -1
  133. package/build/plugins/resource/aad/utils/configs.js +20 -38
  134. package/build/plugins/resource/aad/utils/configs.js.map +1 -1
  135. package/build/plugins/resource/apim/error.d.ts.map +1 -1
  136. package/build/plugins/resource/apim/error.js +1 -4
  137. package/build/plugins/resource/apim/error.js.map +1 -1
  138. package/build/plugins/resource/apim/managers/apimManager.d.ts.map +1 -1
  139. package/build/plugins/resource/apim/managers/apimManager.js +21 -58
  140. package/build/plugins/resource/apim/managers/apimManager.js.map +1 -1
  141. package/build/plugins/resource/apim/managers/questionManager.d.ts.map +1 -1
  142. package/build/plugins/resource/apim/managers/questionManager.js +0 -7
  143. package/build/plugins/resource/apim/managers/questionManager.js.map +1 -1
  144. package/build/plugins/resource/apim/questions/vscodeQuestion.d.ts.map +1 -1
  145. package/build/plugins/resource/apim/questions/vscodeQuestion.js +6 -13
  146. package/build/plugins/resource/apim/questions/vscodeQuestion.js.map +1 -1
  147. package/build/plugins/resource/appstudio/constants.d.ts +3 -2
  148. package/build/plugins/resource/appstudio/constants.d.ts.map +1 -1
  149. package/build/plugins/resource/appstudio/constants.js +12 -11
  150. package/build/plugins/resource/appstudio/constants.js.map +1 -1
  151. package/build/plugins/resource/appstudio/index.d.ts +2 -36
  152. package/build/plugins/resource/appstudio/index.d.ts.map +1 -1
  153. package/build/plugins/resource/appstudio/index.js +1 -31
  154. package/build/plugins/resource/appstudio/index.js.map +1 -1
  155. package/build/plugins/resource/appstudio/manifestTemplate.d.ts +1 -1
  156. package/build/plugins/resource/appstudio/manifestTemplate.d.ts.map +1 -1
  157. package/build/plugins/resource/appstudio/manifestTemplate.js +16 -8
  158. package/build/plugins/resource/appstudio/manifestTemplate.js.map +1 -1
  159. package/build/plugins/resource/appstudio/plugin.d.ts +1 -0
  160. package/build/plugins/resource/appstudio/plugin.d.ts.map +1 -1
  161. package/build/plugins/resource/appstudio/plugin.js +14 -1
  162. package/build/plugins/resource/appstudio/plugin.js.map +1 -1
  163. package/build/plugins/resource/appstudio/v3/index.d.ts +1 -3
  164. package/build/plugins/resource/appstudio/v3/index.d.ts.map +1 -1
  165. package/build/plugins/resource/appstudio/v3/index.js +28 -16
  166. package/build/plugins/resource/appstudio/v3/index.js.map +1 -1
  167. package/build/plugins/resource/bot/configs/provisionConfig.d.ts.map +1 -1
  168. package/build/plugins/resource/bot/configs/provisionConfig.js +0 -10
  169. package/build/plugins/resource/bot/configs/provisionConfig.js.map +1 -1
  170. package/build/plugins/resource/bot/languageStrategy.d.ts +1 -1
  171. package/build/plugins/resource/bot/languageStrategy.d.ts.map +1 -1
  172. package/build/plugins/resource/bot/languageStrategy.js +1 -1
  173. package/build/plugins/resource/bot/languageStrategy.js.map +1 -1
  174. package/build/plugins/resource/bot/plugin.d.ts.map +1 -1
  175. package/build/plugins/resource/bot/plugin.js +14 -131
  176. package/build/plugins/resource/bot/plugin.js.map +1 -1
  177. package/build/plugins/resource/frontend/configs.d.ts +1 -1
  178. package/build/plugins/resource/frontend/configs.d.ts.map +1 -1
  179. package/build/plugins/resource/frontend/configs.js +3 -9
  180. package/build/plugins/resource/frontend/configs.js.map +1 -1
  181. package/build/plugins/resource/frontend/constants.d.ts +2 -8
  182. package/build/plugins/resource/frontend/constants.d.ts.map +1 -1
  183. package/build/plugins/resource/frontend/constants.js +3 -11
  184. package/build/plugins/resource/frontend/constants.js.map +1 -1
  185. package/build/plugins/resource/frontend/dotnet/constants.d.ts +52 -0
  186. package/build/plugins/resource/frontend/dotnet/constants.d.ts.map +1 -0
  187. package/build/plugins/resource/frontend/dotnet/constants.js +69 -0
  188. package/build/plugins/resource/frontend/dotnet/constants.js.map +1 -0
  189. package/build/plugins/resource/frontend/{blazor → dotnet}/enum.d.ts +1 -1
  190. package/build/plugins/resource/frontend/{blazor → dotnet}/enum.d.ts.map +1 -1
  191. package/build/plugins/resource/frontend/dotnet/enum.js +39 -0
  192. package/build/plugins/resource/frontend/{blazor → dotnet}/enum.js.map +1 -1
  193. package/build/plugins/resource/frontend/{blazor → dotnet}/error-factory.d.ts +0 -0
  194. package/build/plugins/resource/frontend/{blazor → dotnet}/error-factory.d.ts.map +1 -1
  195. package/build/plugins/resource/frontend/{blazor → dotnet}/error-factory.js +3 -3
  196. package/build/plugins/resource/frontend/{blazor → dotnet}/error-factory.js.map +1 -1
  197. package/build/plugins/resource/frontend/{blazor → dotnet}/ops/deploy.d.ts +0 -0
  198. package/build/plugins/resource/frontend/{blazor → dotnet}/ops/deploy.d.ts.map +1 -1
  199. package/build/plugins/resource/frontend/{blazor → dotnet}/ops/deploy.js +3 -3
  200. package/build/plugins/resource/frontend/{blazor → dotnet}/ops/deploy.js.map +1 -1
  201. package/build/plugins/resource/frontend/dotnet/plugin.d.ts +34 -0
  202. package/build/plugins/resource/frontend/dotnet/plugin.d.ts.map +1 -0
  203. package/build/plugins/resource/frontend/dotnet/plugin.js +126 -0
  204. package/build/plugins/resource/frontend/dotnet/plugin.js.map +1 -0
  205. package/build/plugins/resource/frontend/dotnet/resources/errors.d.ts +35 -0
  206. package/build/plugins/resource/frontend/dotnet/resources/errors.d.ts.map +1 -0
  207. package/build/plugins/resource/frontend/{blazor → dotnet}/resources/errors.js +10 -22
  208. package/build/plugins/resource/frontend/dotnet/resources/errors.js.map +1 -0
  209. package/build/plugins/resource/frontend/{blazor → dotnet}/resources/messages.d.ts +0 -4
  210. package/build/plugins/resource/frontend/dotnet/resources/messages.d.ts.map +1 -0
  211. package/build/plugins/resource/frontend/{blazor → dotnet}/resources/messages.js +0 -4
  212. package/build/plugins/resource/frontend/dotnet/resources/messages.js.map +1 -0
  213. package/build/plugins/resource/frontend/dotnet/utils/azure-client.d.ts +6 -0
  214. package/build/plugins/resource/frontend/dotnet/utils/azure-client.d.ts.map +1 -0
  215. package/build/plugins/resource/frontend/dotnet/utils/azure-client.js +11 -0
  216. package/build/plugins/resource/frontend/dotnet/utils/azure-client.js.map +1 -0
  217. package/build/plugins/resource/frontend/index.d.ts +6 -3
  218. package/build/plugins/resource/frontend/index.d.ts.map +1 -1
  219. package/build/plugins/resource/frontend/index.js +27 -45
  220. package/build/plugins/resource/frontend/index.js.map +1 -1
  221. package/build/plugins/resource/frontend/interface.d.ts +13 -0
  222. package/build/plugins/resource/frontend/interface.d.ts.map +1 -0
  223. package/build/plugins/resource/frontend/interface.js +3 -0
  224. package/build/plugins/resource/frontend/interface.js.map +1 -0
  225. package/build/plugins/resource/frontend/ops/deploy.d.ts +3 -0
  226. package/build/plugins/resource/frontend/ops/deploy.d.ts.map +1 -1
  227. package/build/plugins/resource/frontend/ops/deploy.js +43 -0
  228. package/build/plugins/resource/frontend/ops/deploy.js.map +1 -1
  229. package/build/plugins/resource/frontend/ops/scaffold.d.ts.map +1 -1
  230. package/build/plugins/resource/frontend/ops/scaffold.js +1 -1
  231. package/build/plugins/resource/frontend/ops/scaffold.js.map +1 -1
  232. package/build/plugins/resource/frontend/plugin.d.ts +3 -3
  233. package/build/plugins/resource/frontend/plugin.d.ts.map +1 -1
  234. package/build/plugins/resource/frontend/plugin.js +13 -44
  235. package/build/plugins/resource/frontend/plugin.js.map +1 -1
  236. package/build/plugins/resource/frontend/resources/errors.d.ts +23 -20
  237. package/build/plugins/resource/frontend/resources/errors.d.ts.map +1 -1
  238. package/build/plugins/resource/frontend/resources/errors.js +31 -67
  239. package/build/plugins/resource/frontend/resources/errors.js.map +1 -1
  240. package/build/plugins/resource/frontend/resources/templateInfo.js +1 -1
  241. package/build/plugins/resource/frontend/resources/templateInfo.js.map +1 -1
  242. package/build/plugins/resource/frontend/utils/logger.d.ts +3 -1
  243. package/build/plugins/resource/frontend/utils/logger.d.ts.map +1 -1
  244. package/build/plugins/resource/frontend/utils/logger.js +9 -6
  245. package/build/plugins/resource/frontend/utils/logger.js.map +1 -1
  246. package/build/plugins/resource/frontend/utils/progress-helper.d.ts +0 -8
  247. package/build/plugins/resource/frontend/utils/progress-helper.d.ts.map +1 -1
  248. package/build/plugins/resource/frontend/utils/progress-helper.js +1 -19
  249. package/build/plugins/resource/frontend/utils/progress-helper.js.map +1 -1
  250. package/build/plugins/resource/frontend/v2/index.d.ts +1 -0
  251. package/build/plugins/resource/frontend/v2/index.d.ts.map +1 -1
  252. package/build/plugins/resource/frontend/v2/index.js +3 -0
  253. package/build/plugins/resource/frontend/v2/index.js.map +1 -1
  254. package/build/plugins/resource/frontend/v3/AzureStoragePlugin.d.ts +15 -0
  255. package/build/plugins/resource/frontend/v3/AzureStoragePlugin.d.ts.map +1 -0
  256. package/build/plugins/resource/frontend/v3/AzureStoragePlugin.js +149 -0
  257. package/build/plugins/resource/frontend/v3/AzureStoragePlugin.js.map +1 -0
  258. package/build/plugins/resource/frontend/v3/ReactTabScaffoldPlugin.d.ts +8 -0
  259. package/build/plugins/resource/frontend/v3/ReactTabScaffoldPlugin.d.ts.map +1 -0
  260. package/build/plugins/resource/frontend/v3/ReactTabScaffoldPlugin.js +95 -0
  261. package/build/plugins/resource/frontend/v3/ReactTabScaffoldPlugin.js.map +1 -0
  262. package/build/plugins/resource/frontend/v3/error.d.ts +23 -0
  263. package/build/plugins/resource/frontend/v3/error.d.ts.map +1 -0
  264. package/build/plugins/resource/frontend/v3/error.js +66 -0
  265. package/build/plugins/resource/frontend/v3/error.js.map +1 -0
  266. package/build/plugins/resource/frontend/v3/index.d.ts +3 -0
  267. package/build/plugins/resource/frontend/v3/index.d.ts.map +1 -0
  268. package/build/plugins/resource/frontend/v3/index.js +7 -0
  269. package/build/plugins/resource/frontend/v3/index.js.map +1 -0
  270. package/build/plugins/resource/function/index.d.ts +1 -1
  271. package/build/plugins/resource/function/index.d.ts.map +1 -1
  272. package/build/plugins/resource/function/index.js +8 -21
  273. package/build/plugins/resource/function/index.js.map +1 -1
  274. package/build/plugins/resource/function/ops/deploy.d.ts.map +1 -1
  275. package/build/plugins/resource/function/ops/deploy.js +8 -9
  276. package/build/plugins/resource/function/ops/deploy.js.map +1 -1
  277. package/build/plugins/resource/function/ops/scaffold.js +1 -1
  278. package/build/plugins/resource/function/ops/scaffold.js.map +1 -1
  279. package/build/plugins/resource/function/plugin.d.ts.map +1 -1
  280. package/build/plugins/resource/function/plugin.js +33 -134
  281. package/build/plugins/resource/function/plugin.js.map +1 -1
  282. package/build/plugins/resource/function/resources/message.d.ts +0 -1
  283. package/build/plugins/resource/function/resources/message.d.ts.map +1 -1
  284. package/build/plugins/resource/function/resources/message.js +0 -1
  285. package/build/plugins/resource/function/resources/message.js.map +1 -1
  286. package/build/plugins/resource/function/utils/depsChecker/funcHelper.d.ts +11 -0
  287. package/build/plugins/resource/function/utils/depsChecker/funcHelper.d.ts.map +1 -0
  288. package/build/plugins/resource/function/utils/depsChecker/funcHelper.js +48 -0
  289. package/build/plugins/resource/function/utils/depsChecker/funcHelper.js.map +1 -0
  290. package/build/plugins/resource/function/utils/depsChecker/funcPluginLogger.d.ts +6 -4
  291. package/build/plugins/resource/function/utils/depsChecker/funcPluginLogger.d.ts.map +1 -1
  292. package/build/plugins/resource/function/utils/depsChecker/funcPluginLogger.js +15 -8
  293. package/build/plugins/resource/function/utils/depsChecker/funcPluginLogger.js.map +1 -1
  294. package/build/plugins/resource/function/utils/depsChecker/funcPluginTelemetry.d.ts +4 -3
  295. package/build/plugins/resource/function/utils/depsChecker/funcPluginTelemetry.d.ts.map +1 -1
  296. package/build/plugins/resource/function/utils/depsChecker/funcPluginTelemetry.js +5 -4
  297. package/build/plugins/resource/function/utils/depsChecker/funcPluginTelemetry.js.map +1 -1
  298. package/build/plugins/resource/function/utils/telemetry-helper.d.ts +1 -1
  299. package/build/plugins/resource/function/utils/telemetry-helper.d.ts.map +1 -1
  300. package/build/plugins/resource/identity/index.d.ts +0 -1
  301. package/build/plugins/resource/identity/index.d.ts.map +1 -1
  302. package/build/plugins/resource/identity/index.js +2 -20
  303. package/build/plugins/resource/identity/index.js.map +1 -1
  304. package/build/plugins/resource/simpleauth/index.d.ts.map +1 -1
  305. package/build/plugins/resource/simpleauth/index.js +1 -6
  306. package/build/plugins/resource/simpleauth/index.js.map +1 -1
  307. package/build/plugins/resource/simpleauth/plugin.d.ts.map +1 -1
  308. package/build/plugins/resource/simpleauth/plugin.js +0 -3
  309. package/build/plugins/resource/simpleauth/plugin.js.map +1 -1
  310. package/build/plugins/resource/spfx/plugin.d.ts.map +1 -1
  311. package/build/plugins/resource/spfx/plugin.js +14 -9
  312. package/build/plugins/resource/spfx/plugin.js.map +1 -1
  313. package/build/plugins/resource/spfx/utils/constants.d.ts +5 -4
  314. package/build/plugins/resource/spfx/utils/constants.d.ts.map +1 -1
  315. package/build/plugins/resource/spfx/utils/constants.js +5 -4
  316. package/build/plugins/resource/spfx/utils/constants.js.map +1 -1
  317. package/build/plugins/resource/spfx/utils/progress-helper.d.ts.map +1 -1
  318. package/build/plugins/resource/spfx/utils/progress-helper.js +1 -1
  319. package/build/plugins/resource/spfx/utils/progress-helper.js.map +1 -1
  320. package/build/plugins/resource/sql/index.d.ts.map +1 -1
  321. package/build/plugins/resource/sql/index.js +1 -9
  322. package/build/plugins/resource/sql/index.js.map +1 -1
  323. package/build/plugins/resource/sql/plugin.d.ts.map +1 -1
  324. package/build/plugins/resource/sql/plugin.js +26 -58
  325. package/build/plugins/resource/sql/plugin.js.map +1 -1
  326. package/build/plugins/resource/utils4v2.d.ts +1 -1
  327. package/build/plugins/resource/utils4v2.d.ts.map +1 -1
  328. package/build/plugins/resource/utils4v2.js +3 -3
  329. package/build/plugins/resource/utils4v2.js.map +1 -1
  330. package/build/plugins/solution/fx-solution/arm.d.ts +9 -2
  331. package/build/plugins/solution/fx-solution/arm.d.ts.map +1 -1
  332. package/build/plugins/solution/fx-solution/arm.js +45 -11
  333. package/build/plugins/solution/fx-solution/arm.js.map +1 -1
  334. package/build/plugins/solution/fx-solution/commonQuestions.d.ts +4 -3
  335. package/build/plugins/solution/fx-solution/commonQuestions.d.ts.map +1 -1
  336. package/build/plugins/solution/fx-solution/commonQuestions.js +11 -10
  337. package/build/plugins/solution/fx-solution/commonQuestions.js.map +1 -1
  338. package/build/plugins/solution/fx-solution/constants.d.ts +1 -0
  339. package/build/plugins/solution/fx-solution/constants.d.ts.map +1 -1
  340. package/build/plugins/solution/fx-solution/constants.js +1 -0
  341. package/build/plugins/solution/fx-solution/constants.js.map +1 -1
  342. package/build/plugins/solution/fx-solution/debug/constants.d.ts +0 -5
  343. package/build/plugins/solution/fx-solution/debug/constants.d.ts.map +1 -1
  344. package/build/plugins/solution/fx-solution/debug/constants.js +1 -7
  345. package/build/plugins/solution/fx-solution/debug/constants.js.map +1 -1
  346. package/build/plugins/solution/fx-solution/debug/provisionLocal.d.ts.map +1 -1
  347. package/build/plugins/solution/fx-solution/debug/provisionLocal.js +2 -2
  348. package/build/plugins/solution/fx-solution/debug/provisionLocal.js.map +1 -1
  349. package/build/plugins/solution/fx-solution/debug/scaffolding.d.ts +2 -2
  350. package/build/plugins/solution/fx-solution/debug/scaffolding.d.ts.map +1 -1
  351. package/build/plugins/solution/fx-solution/debug/scaffolding.js +5 -3
  352. package/build/plugins/solution/fx-solution/debug/scaffolding.js.map +1 -1
  353. package/build/plugins/solution/fx-solution/question.d.ts +2 -2
  354. package/build/plugins/solution/fx-solution/question.d.ts.map +1 -1
  355. package/build/plugins/solution/fx-solution/question.js +32 -22
  356. package/build/plugins/solution/fx-solution/question.js.map +1 -1
  357. package/build/plugins/solution/fx-solution/solution.d.ts.map +1 -1
  358. package/build/plugins/solution/fx-solution/solution.js +15 -15
  359. package/build/plugins/solution/fx-solution/solution.js.map +1 -1
  360. package/build/plugins/solution/fx-solution/utils/ResourceGroupHelper.d.ts +31 -0
  361. package/build/plugins/solution/fx-solution/utils/ResourceGroupHelper.d.ts.map +1 -0
  362. package/build/plugins/solution/fx-solution/utils/ResourceGroupHelper.js +222 -0
  363. package/build/plugins/solution/fx-solution/utils/ResourceGroupHelper.js.map +1 -0
  364. package/build/plugins/solution/fx-solution/v2/adaptor.js +1 -1
  365. package/build/plugins/solution/fx-solution/v2/adaptor.js.map +1 -1
  366. package/build/plugins/solution/fx-solution/v2/createEnv.d.ts.map +1 -1
  367. package/build/plugins/solution/fx-solution/v2/createEnv.js +1 -3
  368. package/build/plugins/solution/fx-solution/v2/createEnv.js.map +1 -1
  369. package/build/plugins/solution/fx-solution/v2/executeUserTask.d.ts +2 -2
  370. package/build/plugins/solution/fx-solution/v2/executeUserTask.d.ts.map +1 -1
  371. package/build/plugins/solution/fx-solution/v2/executeUserTask.js +196 -122
  372. package/build/plugins/solution/fx-solution/v2/executeUserTask.js.map +1 -1
  373. package/build/plugins/solution/fx-solution/v2/generateResourceTemplate.d.ts +2 -2
  374. package/build/plugins/solution/fx-solution/v2/generateResourceTemplate.d.ts.map +1 -1
  375. package/build/plugins/solution/fx-solution/v2/generateResourceTemplate.js +9 -14
  376. package/build/plugins/solution/fx-solution/v2/generateResourceTemplate.js.map +1 -1
  377. package/build/plugins/solution/fx-solution/v2/getQuestions.d.ts.map +1 -1
  378. package/build/plugins/solution/fx-solution/v2/getQuestions.js +81 -96
  379. package/build/plugins/solution/fx-solution/v2/getQuestions.js.map +1 -1
  380. package/build/plugins/solution/fx-solution/v2/provision.d.ts.map +1 -1
  381. package/build/plugins/solution/fx-solution/v2/provision.js.map +1 -1
  382. package/build/plugins/solution/fx-solution/v2/scaffolding.d.ts.map +1 -1
  383. package/build/plugins/solution/fx-solution/v2/scaffolding.js +6 -0
  384. package/build/plugins/solution/fx-solution/v2/scaffolding.js.map +1 -1
  385. package/build/plugins/solution/fx-solution/v2/utils.js +1 -1
  386. package/build/plugins/solution/fx-solution/v2/utils.js.map +1 -1
  387. package/build/plugins/solution/fx-solution/v3/addModule.d.ts +2 -4
  388. package/build/plugins/solution/fx-solution/v3/addModule.d.ts.map +1 -1
  389. package/build/plugins/solution/fx-solution/v3/addModule.js +29 -6
  390. package/build/plugins/solution/fx-solution/v3/addModule.js.map +1 -1
  391. package/build/plugins/solution/fx-solution/v3/addResource.d.ts +6 -14
  392. package/build/plugins/solution/fx-solution/v3/addResource.d.ts.map +1 -1
  393. package/build/plugins/solution/fx-solution/v3/addResource.js +23 -51
  394. package/build/plugins/solution/fx-solution/v3/addResource.js.map +1 -1
  395. package/build/plugins/solution/fx-solution/v3/constants.d.ts +2 -0
  396. package/build/plugins/solution/fx-solution/v3/constants.d.ts.map +1 -1
  397. package/build/plugins/solution/fx-solution/v3/constants.js +2 -0
  398. package/build/plugins/solution/fx-solution/v3/constants.js.map +1 -1
  399. package/build/plugins/solution/fx-solution/v3/deploy.d.ts +1 -3
  400. package/build/plugins/solution/fx-solution/v3/deploy.d.ts.map +1 -1
  401. package/build/plugins/solution/fx-solution/v3/deploy.js.map +1 -1
  402. package/build/plugins/solution/fx-solution/v3/init.d.ts.map +1 -1
  403. package/build/plugins/solution/fx-solution/v3/init.js +9 -0
  404. package/build/plugins/solution/fx-solution/v3/init.js.map +1 -1
  405. package/build/plugins/solution/fx-solution/v3/provision.d.ts +8 -1
  406. package/build/plugins/solution/fx-solution/v3/provision.d.ts.map +1 -1
  407. package/build/plugins/solution/fx-solution/v3/provision.js +219 -16
  408. package/build/plugins/solution/fx-solution/v3/provision.js.map +1 -1
  409. package/build/plugins/solution/fx-solution/v3/provisionLocal.d.ts.map +1 -1
  410. package/build/plugins/solution/fx-solution/v3/provisionLocal.js +96 -1
  411. package/build/plugins/solution/fx-solution/v3/provisionLocal.js.map +1 -1
  412. package/build/plugins/solution/fx-solution/v3/scaffold.d.ts +8 -13
  413. package/build/plugins/solution/fx-solution/v3/scaffold.d.ts.map +1 -1
  414. package/build/plugins/solution/fx-solution/v3/scaffold.js +30 -52
  415. package/build/plugins/solution/fx-solution/v3/scaffold.js.map +1 -1
  416. package/build/plugins/solution/spfx-solution/addModule.d.ts +2 -4
  417. package/build/plugins/solution/spfx-solution/addModule.d.ts.map +1 -1
  418. package/build/plugins/solution/spfx-solution/addModule.js +1 -1
  419. package/build/plugins/solution/spfx-solution/addModule.js.map +1 -1
  420. package/build/plugins/solution/spfx-solution/scaffold.d.ts +2 -10
  421. package/build/plugins/solution/spfx-solution/scaffold.d.ts.map +1 -1
  422. package/build/plugins/solution/spfx-solution/scaffold.js +3 -39
  423. package/build/plugins/solution/spfx-solution/scaffold.js.map +1 -1
  424. package/build/plugins/solution/spfx-solution/solution.d.ts +12 -17
  425. package/build/plugins/solution/spfx-solution/solution.d.ts.map +1 -1
  426. package/build/plugins/solution/spfx-solution/solution.js +7 -7
  427. package/build/plugins/solution/spfx-solution/solution.js.map +1 -1
  428. package/package.json +6 -7
  429. package/resource/strings.json +17 -7
  430. package/templates/plugins/resource/apim/bicep/apimConfiguration.bicep +1 -0
  431. package/templates/plugins/resource/apim/bicep/apimProvision.bicep +7 -5
  432. package/templates/plugins/resource/apim/bicep/config.template.bicep +1 -0
  433. package/templates/plugins/resource/bot/bicep/botConfiguration.template.bicep +12 -12
  434. package/templates/plugins/resource/bot/bicep/botProvision.template.bicep +15 -11
  435. package/templates/plugins/resource/bot/bicep/config.template.bicep +2 -0
  436. package/templates/plugins/resource/frontend/bicep/frontendHostingProvision.bicep +4 -2
  437. package/templates/plugins/resource/frontend/bicep/provision.template.bicep +1 -0
  438. package/templates/plugins/resource/function/bicep/config.template.bicep +2 -0
  439. package/templates/plugins/resource/function/bicep/functionConfiguration.template.bicep +15 -15
  440. package/templates/plugins/resource/function/bicep/functionProvision.template.bicep +17 -14
  441. package/templates/plugins/resource/identity/bicep/identityProvision.template.bicep +2 -1
  442. package/templates/plugins/resource/keyvault/bicep/keyVaultProvision.template.bicep +9 -7
  443. package/templates/plugins/resource/simpleauth/bicep/config.template.bicep +2 -0
  444. package/templates/plugins/resource/simpleauth/bicep/simpleAuthConfiguration.template.bicep +7 -7
  445. package/templates/plugins/resource/simpleauth/bicep/simpleAuthProvision.template.bicep +9 -6
  446. package/templates/plugins/resource/sql/bicep/sqlProvision.template.bicep +8 -5
  447. package/templates/plugins/resource/webapp/bicep/config.template.bicep +10 -0
  448. package/templates/plugins/resource/webapp/bicep/provision.template.bicep +16 -0
  449. package/templates/plugins/resource/webapp/bicep/webappConfiguration.template.bicep +74 -0
  450. package/templates/plugins/resource/webapp/bicep/webappProvision.template.bicep +48 -0
  451. package/build/common/templates.d.ts.map +0 -1
  452. package/build/common/templates.js.map +0 -1
  453. package/build/common/templatesActions.d.ts.map +0 -1
  454. package/build/common/templatesActions.js.map +0 -1
  455. package/build/common/templatesUtils.d.ts.map +0 -1
  456. package/build/common/templatesUtils.js.map +0 -1
  457. package/build/core/middleware/projectUpgrader.d.ts +0 -6
  458. package/build/core/middleware/projectUpgrader.d.ts.map +0 -1
  459. package/build/core/middleware/projectUpgrader.js +0 -224
  460. package/build/core/middleware/projectUpgrader.js.map +0 -1
  461. package/build/plugins/resource/frontend/blazor/constants.d.ts +0 -75
  462. package/build/plugins/resource/frontend/blazor/constants.d.ts.map +0 -1
  463. package/build/plugins/resource/frontend/blazor/constants.js +0 -98
  464. package/build/plugins/resource/frontend/blazor/constants.js.map +0 -1
  465. package/build/plugins/resource/frontend/blazor/enum.js +0 -39
  466. package/build/plugins/resource/frontend/blazor/ops/provision.d.ts +0 -8
  467. package/build/plugins/resource/frontend/blazor/ops/provision.d.ts.map +0 -1
  468. package/build/plugins/resource/frontend/blazor/ops/provision.js +0 -42
  469. package/build/plugins/resource/frontend/blazor/ops/provision.js.map +0 -1
  470. package/build/plugins/resource/frontend/blazor/plugin.d.ts +0 -35
  471. package/build/plugins/resource/frontend/blazor/plugin.d.ts.map +0 -1
  472. package/build/plugins/resource/frontend/blazor/plugin.js +0 -190
  473. package/build/plugins/resource/frontend/blazor/plugin.js.map +0 -1
  474. package/build/plugins/resource/frontend/blazor/resources/errors.d.ts +0 -41
  475. package/build/plugins/resource/frontend/blazor/resources/errors.d.ts.map +0 -1
  476. package/build/plugins/resource/frontend/blazor/resources/errors.js.map +0 -1
  477. package/build/plugins/resource/frontend/blazor/resources/messages.d.ts.map +0 -1
  478. package/build/plugins/resource/frontend/blazor/resources/messages.js.map +0 -1
  479. package/build/plugins/resource/frontend/blazor/utils/azure-client.d.ts +0 -21
  480. package/build/plugins/resource/frontend/blazor/utils/azure-client.d.ts.map +0 -1
  481. package/build/plugins/resource/frontend/blazor/utils/azure-client.js +0 -47
  482. package/build/plugins/resource/frontend/blazor/utils/azure-client.js.map +0 -1
  483. package/build/plugins/resource/frontend/utils/azure-client.d.ts +0 -12
  484. package/build/plugins/resource/frontend/utils/azure-client.d.ts.map +0 -1
  485. package/build/plugins/resource/frontend/utils/azure-client.js +0 -29
  486. package/build/plugins/resource/frontend/utils/azure-client.js.map +0 -1
  487. package/build/plugins/resource/function/utils/depsChecker/backendExtensionsInstall.d.ts +0 -9
  488. package/build/plugins/resource/function/utils/depsChecker/backendExtensionsInstall.d.ts.map +0 -1
  489. package/build/plugins/resource/function/utils/depsChecker/backendExtensionsInstall.js +0 -55
  490. package/build/plugins/resource/function/utils/depsChecker/backendExtensionsInstall.js.map +0 -1
  491. package/build/plugins/resource/function/utils/depsChecker/checker.d.ts +0 -54
  492. package/build/plugins/resource/function/utils/depsChecker/checker.d.ts.map +0 -1
  493. package/build/plugins/resource/function/utils/depsChecker/checker.js +0 -104
  494. package/build/plugins/resource/function/utils/depsChecker/checker.js.map +0 -1
  495. package/build/plugins/resource/function/utils/depsChecker/common.d.ts +0 -84
  496. package/build/plugins/resource/function/utils/depsChecker/common.d.ts.map +0 -1
  497. package/build/plugins/resource/function/utils/depsChecker/common.js +0 -136
  498. package/build/plugins/resource/function/utils/depsChecker/common.js.map +0 -1
  499. package/build/plugins/resource/function/utils/depsChecker/cpUtils.d.ts +0 -22
  500. package/build/plugins/resource/function/utils/depsChecker/cpUtils.d.ts.map +0 -1
  501. package/build/plugins/resource/function/utils/depsChecker/cpUtils.js +0 -105
  502. package/build/plugins/resource/function/utils/depsChecker/cpUtils.js.map +0 -1
  503. package/build/plugins/resource/function/utils/depsChecker/dotnetChecker.d.ts +0 -53
  504. package/build/plugins/resource/function/utils/depsChecker/dotnetChecker.d.ts.map +0 -1
  505. package/build/plugins/resource/function/utils/depsChecker/dotnetChecker.js +0 -387
  506. package/build/plugins/resource/function/utils/depsChecker/dotnetChecker.js.map +0 -1
  507. package/build/plugins/resource/function/utils/depsChecker/errors.d.ts +0 -14
  508. package/build/plugins/resource/function/utils/depsChecker/errors.d.ts.map +0 -1
  509. package/build/plugins/resource/function/utils/depsChecker/errors.js +0 -41
  510. package/build/plugins/resource/function/utils/depsChecker/errors.js.map +0 -1
  511. package/build/plugins/resource/function/utils/depsChecker/funcPluginAdapter.d.ts +0 -26
  512. package/build/plugins/resource/function/utils/depsChecker/funcPluginAdapter.d.ts.map +0 -1
  513. package/build/plugins/resource/function/utils/depsChecker/funcPluginAdapter.js +0 -111
  514. package/build/plugins/resource/function/utils/depsChecker/funcPluginAdapter.js.map +0 -1
  515. package/build/plugins/solution/fx-solution/debug/util/certificate.d.ts.map +0 -1
  516. package/build/plugins/solution/fx-solution/debug/util/certificate.js.map +0 -1
  517. package/build/plugins/solution/fx-solution/debug/util/process.d.ts.map +0 -1
  518. package/build/plugins/solution/fx-solution/debug/util/process.js.map +0 -1
  519. package/resource/plugins/resource/function/dotnet-install.ps1 +0 -1095
  520. package/resource/plugins/resource/function/dotnet-install.sh +0 -1222
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/teamsfx-core",
3
- "version": "1.2.0",
3
+ "version": "1.2.2-alpha.eb4575da.0",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "license": "MIT",
@@ -8,7 +8,7 @@
8
8
  "lint:staged": "lint-staged",
9
9
  "lint": "eslint \"src/**/*.ts\" \"tests/**/*.ts\"",
10
10
  "test:bot": "nyc mocha \"tests/plugins/resource/bot/**/*.test.ts\"",
11
- "test:blazor": "nyc mocha \"tests/plugins/resource/blazor/**/*.test.ts\"",
11
+ "test:dotnet": "nyc mocha \"tests/plugins/resource/dotnet/**/*.test.ts\"",
12
12
  "test:function": "nyc mocha \"tests/plugins/resource/function/**/*.test.ts\"",
13
13
  "test:localdebug": "nyc mocha \"tests/plugins/resource/localdebug/**/*.test.ts\"",
14
14
  "test:frontend": "nyc mocha \"tests/plugins/resource/frontend/**/*.test.ts\"",
@@ -39,9 +39,8 @@
39
39
  "prepublishOnly": "npm run test:unit && npm run build",
40
40
  "package": "rimraf build && webpack --mode production --config ./webpack.config.js",
41
41
  "precommit": "lint-staged",
42
- "install:api": "cd api && npm install",
43
42
  "install:tabs": "cd tabs && npm install",
44
- "installAll": "npm run install:api & npm run install:tabs"
43
+ "installAll": "npm run install:tabs"
45
44
  },
46
45
  "dependencies": {
47
46
  "@apidevtools/swagger-parser": "^10.0.2",
@@ -57,7 +56,7 @@
57
56
  "@azure/storage-blob": "^12.7.0",
58
57
  "@dbpiper/timer": "1.0.0-beta.2",
59
58
  "@feathersjs/hooks": "^0.6.5",
60
- "@microsoft/teamsfx-api": "^0.13.0",
59
+ "@microsoft/teamsfx-api": "0.13.1-alpha.eb4575da.0",
61
60
  "@npmcli/package-json": "^1.0.1",
62
61
  "@types/jwt-decode": "3.1.0",
63
62
  "@types/proper-lockfile": "^4.1.1",
@@ -83,7 +82,7 @@
83
82
  "md5": "^2.3.0",
84
83
  "mime": "^2.5.2",
85
84
  "mustache": "^4.2.0",
86
- "node-forge": "^0.10.0",
85
+ "node-forge": "^1.0.0",
87
86
  "node-ts-uuid": "^1.0.8",
88
87
  "openapi-types": "^7.2.3",
89
88
  "proper-lockfile": "^4.1.2",
@@ -170,7 +169,7 @@
170
169
  "resource/**/*",
171
170
  "templates/**/*"
172
171
  ],
173
- "gitHead": "bd24b384fac0378c6ea91f631dfbfdd01fc00bd0",
172
+ "gitHead": "b80332aa162e29274e333a2ff12b5a1fd0b5d656",
174
173
  "publishConfig": {
175
174
  "access": "public"
176
175
  },
@@ -13,12 +13,22 @@
13
13
  "FailedToDeployBeforeProvision": "Failed to deploy because the resources have not been provisioned yet. Make sure you do the provision first. Click Get Help to learn more about why you need to provision.",
14
14
  "FailedToPublishBeforeProvision": "Failed to publish because the resources have not been provisioned yet. Make sure you do the provision first. Click Get Help to learn more about why you need to provision.",
15
15
  "SPFxAskProvisionBeforePublish": "Failed to publish because the teams app has not been provisioned yet. Please provision first. Click Get Help to learn more about why you need to provision.",
16
- "AddResourceNotice": "[Teams Toolkit] Resource \"%s\" have been successfully configured for your project, trigger 'Teams: Provision in the cloud' will create the resource(s) in your Azure subscription.",
17
- "AddResourceNoticeForCli": "[Teams Toolkit] Resource \"%s\" have been successfully configured for your project, run 'teamsfx provision' will create the resource(s) in your Azure subscription.",
18
- "AddCapabilityNotice": "[Teams Toolkit] Capability %s has been successfully added to your project. F5 to local debug the application or trigger 'Teams: Provision in the cloud' to create resources in your Azure subscription for hosting.",
19
- "AddCapabilitiesNotice": "[Teams Toolkit] Capabilities %s have been successfully added to your project. F5 to local debug the application or trigger 'Teams: Provision in the cloud' to create resources in your Azure subscription for hosting.",
20
- "AddCapabilityNoticeForCli": "[Teams Toolkit] Capability %s has been successfully added to your project. Run 'teamsfx provision' to create resources in your Azure subscription for hosting.",
21
- "AddCapabilitiesNoticeForCli": "[Teams Toolkit] Capabilities %s have been successfully added to your project. Run 'teamsfx provision' to create resources in your Azure subscription for hosting.",
16
+ "addCapability" : {
17
+ "OnlySupportAzure": "Add capability is only supported for project hosted in Azure",
18
+ "ExceedMaxLimit": "Your App reaches maximal limit for Tabs, Bot and Message Extension.",
19
+ "AddCapabilityNotice": "[Teams Toolkit] Capability %s has been successfully added to your project. F5 to local debug the application or trigger 'Teams: Provision in the cloud' to create resources in your Azure subscription for hosting.",
20
+ "AddCapabilitiesNotice": "[Teams Toolkit] Capabilities %s have been successfully added to your project. F5 to local debug the application or trigger 'Teams: Provision in the cloud' to create resources in your Azure subscription for hosting.",
21
+ "AddCapabilityNoticeForCli": "[Teams Toolkit] Capability %s has been successfully added to your project. Run 'teamsfx provision' to create resources in your Azure subscription for hosting.",
22
+ "AddCapabilitiesNoticeForCli": "[Teams Toolkit] Capabilities %s have been successfully added to your project. Run 'teamsfx provision' to create resources in your Azure subscription for hosting."
23
+ },
24
+ "addResource": {
25
+ "OnlySupportAzure": "Add resource is only supported for project hosted in Azure",
26
+ "NotSupportForVSProject": "Add resource is not supported for csharp project",
27
+ "AddResourceNotice": "[Teams Toolkit] Resource \"%s\" has been successfully configured for your project, trigger 'Teams: Provision in the cloud' will create the resource in your Azure subscription.",
28
+ "AddResourceNoticeForCli": "[Teams Toolkit] Resource \"%s\" has been successfully configured for your project, run 'teamsfx provision' will create the resource in your Azure subscription.",
29
+ "AddResourcesNotice": "[Teams Toolkit] Resources \"%s\" have been successfully configured for your project, trigger 'Teams: Provision in the cloud' will create the resources in your Azure subscription.",
30
+ "AddResourcesNoticeForCli": "[Teams Toolkit] Resources \"%s\" have been successfully configured for your project, run 'teamsfx provision' will create the resources in your Azure subscription."
31
+ },
22
32
  "CancelProvision": "CancelProvision",
23
33
  "AlreadyProvisionNotice": "'%s' is already provisioned in the cloud, will create the teams app again if it has been removed.",
24
34
  "NotProvisionedNotice": "'%s' is not provisioned in the cloud yet. Please provision first.",
@@ -54,7 +64,7 @@
54
64
  "buildNotice": "SharePoint package successfully built at %s.",
55
65
  "deployNotice": "SharePoint package %s has been successfully deployed to [%s](%s).",
56
66
  "deployFailedNotice": "You don't have permission to upload and deploy package to App Catalog %s, please use site admin account, or you can get your own free Microsoft 365 tenant from [M365 developer program](https://developer.microsoft.com/en-us/microsoft-365/dev-program)",
57
- "createAppCatalogNotice": "There is no tenant app catalog under %s, you can Read more about how to create app catalog site."
67
+ "createAppCatalogNotice": "There is no tenant app catalog under %s, do you want to create one?"
58
68
  }
59
69
  }
60
70
  }
@@ -38,6 +38,7 @@ var scope = '${m365ApplicationIdUri}/.default'
38
38
  var authorizationEndpoint = uri(m365OauthAuthorityHost, '${m365TenantId}/oauth2/v2.0/authorize')
39
39
  var tokenEndpoint = uri(m365OauthAuthorityHost, '${m365TenantId}/oauth2/v2.0/token')
40
40
 
41
+ //Enables Microsoft Power Platform to access your APIs hosted in Function App
41
42
  resource apimServiceAuthServer 'Microsoft.ApiManagement/service/authorizationServers@2020-12-01' = {
42
43
  name: '${apimServiceName}/${oauthServerName}'
43
44
  properties: {
@@ -2,12 +2,13 @@
2
2
  param provisionParameters object
3
3
 
4
4
  var resourceBaseName = provisionParameters['resourceBaseName']
5
- var apimServiceName = contains(provisionParameters, 'apimServiceName') ? provisionParameters['apimServiceName'] : '${resourceBaseName}'
6
- var apimServiceSku = contains(provisionParameters, 'apimServiceSku') ? provisionParameters['apimServiceSku'] : 'Consumption'
7
- var productName = contains(provisionParameters, 'apimProductName') ? provisionParameters['apimProductName'] : '${resourceBaseName}'
8
- var publisherEmail = provisionParameters['apimPublisherEmail']
9
- var publisherName = provisionParameters['apimPublisherName']
5
+ var apimServiceName = contains(provisionParameters, 'apimServiceName') ? provisionParameters['apimServiceName'] : '${resourceBaseName}' // Try to read name for APIM Service from parameters
6
+ var apimServiceSku = contains(provisionParameters, 'apimServiceSku') ? provisionParameters['apimServiceSku'] : 'Consumption' // Try to read SKU for APIM Service from parameters
7
+ var productName = contains(provisionParameters, 'apimProductName') ? provisionParameters['apimProductName'] : '${resourceBaseName}' // Try to read name for APIM Product from parameters
8
+ var publisherEmail = provisionParameters['apimPublisherEmail'] // Read publisher email for APIM Service from parameters, this parameter is required
9
+ var publisherName = provisionParameters['apimPublisherName'] // Read publisher name for APIM Service from parameters, this parameter is required
10
10
 
11
+ // APIM Service that helps manage your APIs
11
12
  resource apimService 'Microsoft.ApiManagement/service@2020-12-01' = {
12
13
  name: apimServiceName
13
14
  location: resourceGroup().location
@@ -21,6 +22,7 @@ resource apimService 'Microsoft.ApiManagement/service@2020-12-01' = {
21
22
  }
22
23
  }
23
24
 
25
+ // Group your APIs, define terms of use and runtime policies
24
26
  resource apimServiceProduct 'Microsoft.ApiManagement/service/products@2020-12-01' = {
25
27
  parent: apimService
26
28
  name: productName
@@ -1,3 +1,4 @@
1
+ // Add TeamsFx configurations to APIM resources
1
2
  module teamsFxApimConfig '\{{fx-resource-apim.Configuration.apim.path}}' = {
2
3
  name: 'addTeamsFxApimConfiguration'
3
4
  params: {
@@ -38,21 +38,21 @@ var m365ApplicationIdUri = 'api://botid-${botId}'
38
38
  resource botWebAppSettings 'Microsoft.Web/sites/config@2021-02-01' = {
39
39
  name: '${botWebAppName}/appsettings'
40
40
  properties: union({
41
- INITIATE_LOGIN_ENDPOINT: uri(provisionOutputs.botOutput.value.siteEndpoint, 'auth-start.html')
42
- M365_AUTHORITY_HOST: m365OauthAuthorityHost
43
- M365_CLIENT_ID: m365ClientId
44
- M365_CLIENT_SECRET: m365ClientSecret
45
- M365_TENANT_ID: m365TenantId
46
- M365_APPLICATION_ID_URI: m365ApplicationIdUri
47
- BOT_ID: botAadAppClientId
48
- BOT_PASSWORD: botAadAppClientSecret
41
+ INITIATE_LOGIN_ENDPOINT: uri(provisionOutputs.botOutput.value.siteEndpoint, 'auth-start.html') // The page is used to let users consent required OAuth permissions during bot SSO process
42
+ M365_AUTHORITY_HOST: m365OauthAuthorityHost // AAD authority host
43
+ M365_CLIENT_ID: m365ClientId // Client id of AAD application
44
+ M365_CLIENT_SECRET: m365ClientSecret // Client secret of AAD application
45
+ M365_TENANT_ID: m365TenantId // Tenant id of AAD application
46
+ M365_APPLICATION_ID_URI: m365ApplicationIdUri // Application ID URI of AAD application
47
+ BOT_ID: botAadAppClientId // ID of your bot
48
+ BOT_PASSWORD: botAadAppClientSecret // Secret of your bot
49
49
  {{#if (contains "fx-resource-function" plugins) }}
50
- API_ENDPOINT: provisionOutputs.functionOutput.value.functionEndpoint
50
+ API_ENDPOINT: provisionOutputs.functionOutput.value.functionEndpoint // Azure Function endpoint
51
51
  {{/if}}
52
52
  {{#if (contains "fx-resource-azure-sql" plugins)}}
53
- SQL_DATABASE_NAME: \{{fx-resource-azure-sql.References.databaseName}}
54
- SQL_ENDPOINT: \{{fx-resource-azure-sql.References.sqlEndpoint}}
53
+ SQL_DATABASE_NAME: \{{fx-resource-azure-sql.References.databaseName}} // SQL database name
54
+ SQL_ENDPOINT: \{{fx-resource-azure-sql.References.sqlEndpoint}} // SQL server endpoint
55
55
  {{/if}}
56
- IDENTITY_ID: \{{fx-resource-identity.References.identityClientId}}
56
+ IDENTITY_ID: \{{fx-resource-identity.References.identityClientId}} // User assigned identity id, the identity is used to access other Azure resources
57
57
  }, currentAppSettings)
58
58
  }
@@ -3,14 +3,15 @@ param provisionParameters object
3
3
  param userAssignedIdentityId string
4
4
 
5
5
  var resourceBaseName = provisionParameters.resourceBaseName
6
- var botAadAppClientId = provisionParameters['botAadAppClientId']
7
- var botServiceName = contains(provisionParameters, 'botServiceName') ? provisionParameters['botServiceName'] : '${resourceBaseName}'
8
- var botServiceSku = contains(provisionParameters, 'botServiceSku') ? provisionParameters['botServiceSku'] : 'F0'
9
- var botDisplayName = contains(provisionParameters, 'botDisplayName') ? provisionParameters['botDisplayName'] : '${resourceBaseName}'
10
- var serverfarmsName = contains(provisionParameters, 'botServerfarmsName') ? provisionParameters['botServerfarmsName'] : '${resourceBaseName}bot'
11
- var webAppSKU = contains(provisionParameters, 'botWebAppSKU') ? provisionParameters['botWebAppSKU'] : 'F1'
12
- var webAppName = contains(provisionParameters, 'botSitesName') ? provisionParameters['botSitesName'] : '${resourceBaseName}bot'
6
+ var botAadAppClientId = provisionParameters['botAadAppClientId'] // Read AAD app client id for Azure Bot Service from parameters
7
+ var botServiceName = contains(provisionParameters, 'botServiceName') ? provisionParameters['botServiceName'] : '${resourceBaseName}' // Try to read name for Azure Bot Service from parameters
8
+ var botServiceSku = contains(provisionParameters, 'botServiceSku') ? provisionParameters['botServiceSku'] : 'F0' // Try to read SKU for Azure Bot Service from parameters
9
+ var botDisplayName = contains(provisionParameters, 'botDisplayName') ? provisionParameters['botDisplayName'] : '${resourceBaseName}' // Try to read display name for Azure Bot Service from parameters
10
+ var serverfarmsName = contains(provisionParameters, 'botServerfarmsName') ? provisionParameters['botServerfarmsName'] : '${resourceBaseName}bot' // Try to read name for App Service Plan from parameters
11
+ var webAppSKU = contains(provisionParameters, 'botWebAppSKU') ? provisionParameters['botWebAppSKU'] : 'F1' // Try to read SKU for Azure Web App from parameters
12
+ var webAppName = contains(provisionParameters, 'botSitesName') ? provisionParameters['botSitesName'] : '${resourceBaseName}bot' // Try to read name for Azure Web App from parameters
13
13
 
14
+ // Register your web service as a bot with the Bot Framework
14
15
  resource botService 'Microsoft.BotService/botServices@2021-03-01' = {
15
16
  kind: 'azurebot'
16
17
  location: 'global'
@@ -25,6 +26,7 @@ resource botService 'Microsoft.BotService/botServices@2021-03-01' = {
25
26
  }
26
27
  }
27
28
 
29
+ // Connect the bot service to Microsoft Teams
28
30
  resource botServiceMsTeamsChannel 'Microsoft.BotService/botServices/channels@2021-03-01' = {
29
31
  parent: botService
30
32
  location: 'global'
@@ -34,6 +36,7 @@ resource botServiceMsTeamsChannel 'Microsoft.BotService/botServices/channels@202
34
36
  }
35
37
  }
36
38
 
39
+ // Compute resources for your Web App
37
40
  resource serverfarm 'Microsoft.Web/serverfarms@2021-02-01' = {
38
41
  kind: 'app'
39
42
  location: resourceGroup().location
@@ -43,22 +46,23 @@ resource serverfarm 'Microsoft.Web/serverfarms@2021-02-01' = {
43
46
  }
44
47
  }
45
48
 
49
+ // Web App that hosts your bot
46
50
  resource webApp 'Microsoft.Web/sites@2021-02-01' = {
47
51
  kind: 'app'
48
52
  location: resourceGroup().location
49
53
  name: webAppName
50
54
  properties: {
51
55
  serverFarmId: serverfarm.id
52
- keyVaultReferenceIdentity: userAssignedIdentityId
56
+ keyVaultReferenceIdentity: userAssignedIdentityId // Use given user assigned identity to access Key Vault
53
57
  siteConfig: {
54
58
  appSettings: [
55
59
  {
56
60
  name: 'SCM_DO_BUILD_DURING_DEPLOYMENT'
57
- value: 'true'
61
+ value: 'true' // Execute build steps on your site during deployment
58
62
  }
59
63
  {
60
64
  name: 'WEBSITE_NODE_DEFAULT_VERSION'
61
- value: '~14'
65
+ value: '~14' // Set NodeJS version to 14.x for your site
62
66
  }
63
67
  ]
64
68
  }
@@ -66,7 +70,7 @@ resource webApp 'Microsoft.Web/sites@2021-02-01' = {
66
70
  identity: {
67
71
  type: 'UserAssigned'
68
72
  userAssignedIdentities: {
69
- '${userAssignedIdentityId}': {}
73
+ '${userAssignedIdentityId}': {} // The identity is used to access other Azure resources
70
74
  }
71
75
  }
72
76
  }
@@ -1,5 +1,7 @@
1
+ // Get existing app settings for merge
1
2
  var botCurrentAppSettings = list('${provisionOutputs.botOutput.value.botWebAppResourceId}/config/appsettings', '2021-02-01').properties
2
3
 
4
+ // Merge TeamsFx configurations to Bot resources
3
5
  module teamsFxBotConfig '\{{fx-resource-bot.Configuration.bot.path}}' = {
4
6
  name: 'addTeamsFxBotConfiguration'
5
7
  params: {
@@ -1,9 +1,10 @@
1
1
  @secure()
2
2
  param provisionParameters object
3
3
  var resourceBaseName = provisionParameters.resourceBaseName
4
- var storageName = contains(provisionParameters, 'frontendHostingStorageName') ? provisionParameters['frontendHostingStorageName'] : '${resourceBaseName}tab'
5
- var storageSku = contains(provisionParameters, 'frontendHostingStorageSku') ? provisionParameters['frontendHostingStorageSku'] : 'Standard_LRS'
4
+ var storageName = contains(provisionParameters, 'frontendHostingStorageName') ? provisionParameters['frontendHostingStorageName'] : '${resourceBaseName}tab' // Try to read name for frontend hosting Storage Account from parameters
5
+ var storageSku = contains(provisionParameters, 'frontendHostingStorageSku') ? provisionParameters['frontendHostingStorageSku'] : 'Standard_LRS' // Try to read SKU for frontend hosting Storage Account from parameters
6
6
 
7
+ // Azure Storage that hosts your static web site
7
8
  resource storage 'Microsoft.Storage/storageAccounts@2021-06-01' = {
8
9
  kind: 'StorageV2'
9
10
  location: resourceGroup().location
@@ -21,3 +22,4 @@ var siteDomain = replace(replace(storage.properties.primaryEndpoints.web, 'https
21
22
  output resourceId string = storage.id
22
23
  output endpoint string = 'https://${siteDomain}'
23
24
  output domain string = siteDomain
25
+ output indexPath string = '/index.html#'
@@ -10,5 +10,6 @@ output frontendHostingOutput object = {
10
10
  teamsFxPluginId: 'fx-resource-frontend-hosting'
11
11
  domain: frontendHostingProvision.outputs.domain
12
12
  endpoint: frontendHostingProvision.outputs.endpoint
13
+ indexPath: frontendHostingProvision.outputs.indexPath
13
14
  storageResourceId: frontendHostingProvision.outputs.resourceId
14
15
  }
@@ -1,6 +1,8 @@
1
+ // Get existing app settings and site config for merge
1
2
  var functionCurrentConfigs = reference('${provisionOutputs.functionOutput.value.functionAppResourceId}/config/web', '2021-02-01')
2
3
  var functionCurrentAppSettings = list('${provisionOutputs.functionOutput.value.functionAppResourceId}/config/appsettings', '2021-02-01').properties
3
4
 
5
+ // Merge TeamsFx configurations to Azure Functions resources
4
6
  module teamsFxFunctionConfig '\{{fx-resource-function.Configuration.function.path}}' = {
5
7
  name: 'addTeamsFxFunctionConfiguration'
6
8
  params: {
@@ -60,7 +60,7 @@ resource appConfig 'Microsoft.Web/sites/config@2021-02-01' = {
60
60
  properties: {
61
61
  cors: {
62
62
  allowedOrigins: union(currentAllowedOrigins, [
63
- tabAppEndpoint
63
+ tabAppEndpoint // allow requests from tab app
64
64
  ])
65
65
  }
66
66
  }
@@ -69,29 +69,29 @@ resource appConfig 'Microsoft.Web/sites/config@2021-02-01' = {
69
69
  resource appSettings 'Microsoft.Web/sites/config@2021-02-01' = {
70
70
  name: '${functionAppName}/appsettings'
71
71
  properties: union({
72
- API_ENDPOINT: \{{fx-resource-function.References.functionEndpoint}}
73
- ALLOWED_APP_IDS: authorizedClientApplicationIds
74
- M365_CLIENT_ID: m365ClientId
75
- M365_CLIENT_SECRET: m365ClientSecret
76
- M365_TENANT_ID: m365TenantId
77
- M365_AUTHORITY_HOST: m365OauthAuthorityHost
78
- M365_APPLICATION_ID_URI: m365ApplicationIdUri
79
- IDENTITY_ID: \{{fx-resource-identity.References.identityClientId}}
72
+ API_ENDPOINT: \{{fx-resource-function.References.functionEndpoint}} // Azure Functions endpoint
73
+ ALLOWED_APP_IDS: authorizedClientApplicationIds // Only allow tokens issued by these AAD applications
74
+ M365_CLIENT_ID: m365ClientId // Client id of AAD application
75
+ M365_CLIENT_SECRET: m365ClientSecret // Client secret of AAD application
76
+ M365_TENANT_ID: m365TenantId // Tenant id of AAD application
77
+ M365_AUTHORITY_HOST: m365OauthAuthorityHost // AAD authority host
78
+ M365_APPLICATION_ID_URI: m365ApplicationIdUri // Application ID URI of AAD application
79
+ IDENTITY_ID: \{{fx-resource-identity.References.identityClientId}} // User assigned identity id, the identity is used to access other Azure resources
80
80
  {{#if (contains "fx-resource-azure-sql" plugins) }}
81
- SQL_DATABASE_NAME: \{{fx-resource-azure-sql.References.databaseName}}
82
- SQL_ENDPOINT: \{{fx-resource-azure-sql.References.sqlEndpoint}}
81
+ SQL_DATABASE_NAME: \{{fx-resource-azure-sql.References.databaseName}} // SQL database name
82
+ SQL_ENDPOINT: \{{fx-resource-azure-sql.References.sqlEndpoint}} // SQL server endpoint
83
83
  {{/if}}
84
- }, currentAppSettings)
84
+ }, currentAppSettings) // Merge new settings with existing settings
85
85
  }
86
86
 
87
87
  resource authSettings 'Microsoft.Web/sites/config@2021-02-01' = {
88
88
  name: '${functionAppName}/authsettings'
89
89
  properties: {
90
- enabled: true
90
+ enabled: true // Validate access token in request authorization header
91
91
  defaultProvider: 'AzureActiveDirectory'
92
92
  clientId: m365ClientId
93
- issuer: '${oauthAuthority}/v2.0'
94
- allowedAudiences: [
93
+ issuer: '${oauthAuthority}/v2.0' // Issuer of access token
94
+ allowedAudiences: [ // Only allow tokens with following audiences
95
95
  m365ClientId
96
96
  m365ApplicationIdUri
97
97
  ]
@@ -3,12 +3,13 @@ param provisionParameters object
3
3
  param userAssignedIdentityId string
4
4
 
5
5
  var resourceBaseName = provisionParameters.resourceBaseName
6
- var serverfarmsName = contains(provisionParameters, 'functionServerfarmsName') ? provisionParameters['functionServerfarmsName'] : '${resourceBaseName}api'
7
- var serverfarmsSku = contains(provisionParameters, 'functionServerfarmsSku') ? provisionParameters['functionServerfarmsSku'] : 'Y1'
8
- var functionAppName = contains(provisionParameters, 'functionWebappName') ? provisionParameters['functionWebappName'] : '${resourceBaseName}api'
9
- var storageName = contains(provisionParameters, 'functionStorageName') ? provisionParameters['functionStorageName'] : '${resourceBaseName}api'
10
- var storageSku = contains(provisionParameters, 'functionStorageSku') ? provisionParameters['functionStorageSku'] : 'Standard_LRS'
6
+ var serverfarmsName = contains(provisionParameters, 'functionServerfarmsName') ? provisionParameters['functionServerfarmsName'] : '${resourceBaseName}api' // Try to read name for App Service Plan from parameters
7
+ var serverfarmsSku = contains(provisionParameters, 'functionServerfarmsSku') ? provisionParameters['functionServerfarmsSku'] : 'Y1' // Try to read SKU for App Service Plan from parameters
8
+ var functionAppName = contains(provisionParameters, 'functionWebappName') ? provisionParameters['functionWebappName'] : '${resourceBaseName}api' // Try to read name for Azure Functions from parameters
9
+ var storageName = contains(provisionParameters, 'functionStorageName') ? provisionParameters['functionStorageName'] : '${resourceBaseName}api' // Try to read name for Azure Storage from parameters
10
+ var storageSku = contains(provisionParameters, 'functionStorageSku') ? provisionParameters['functionStorageSku'] : 'Standard_LRS' // Try to read SKU for Azure Storage from parameters
11
11
 
12
+ // Compute resources for Azure Functions
12
13
  resource serverfarms 'Microsoft.Web/serverfarms@2021-02-01' = {
13
14
  name: serverfarmsName
14
15
  kind: 'functionapp'
@@ -18,42 +19,43 @@ resource serverfarms 'Microsoft.Web/serverfarms@2021-02-01' = {
18
19
  }
19
20
  }
20
21
 
22
+ // Azure Functions that hosts your function code
21
23
  resource functionApp 'Microsoft.Web/sites@2021-02-01' = {
22
24
  name: functionAppName
23
25
  kind: 'functionapp'
24
26
  location: resourceGroup().location
25
27
  properties: {
26
28
  serverFarmId: serverfarms.id
27
- keyVaultReferenceIdentity: userAssignedIdentityId
29
+ keyVaultReferenceIdentity: userAssignedIdentityId // Use given user assigned identity to access Key Vault
28
30
  siteConfig: {
29
31
  appSettings: [
30
32
  {
31
33
  name: 'AzureWebJobsDashboard'
32
- value: 'DefaultEndpointsProtocol=https;AccountName=${storage.name};AccountKey=${listKeys(storage.id, storage.apiVersion).keys[0].value};EndpointSuffix=${environment().suffixes.storage}'
34
+ value: 'DefaultEndpointsProtocol=https;AccountName=${storage.name};AccountKey=${listKeys(storage.id, storage.apiVersion).keys[0].value};EndpointSuffix=${environment().suffixes.storage}' // Azure Functions internal setting
33
35
  }
34
36
  {
35
37
  name: 'AzureWebJobsStorage'
36
- value: 'DefaultEndpointsProtocol=https;AccountName=${storage.name};AccountKey=${listKeys(storage.id, storage.apiVersion).keys[0].value};EndpointSuffix=${environment().suffixes.storage}'
38
+ value: 'DefaultEndpointsProtocol=https;AccountName=${storage.name};AccountKey=${listKeys(storage.id, storage.apiVersion).keys[0].value};EndpointSuffix=${environment().suffixes.storage}' // Azure Functions internal setting
37
39
  }
38
40
  {
39
41
  name: 'FUNCTIONS_EXTENSION_VERSION'
40
- value: '~3'
42
+ value: '~3' // Use Azure Functions runtime v3
41
43
  }
42
44
  {
43
45
  name: 'FUNCTIONS_WORKER_RUNTIME'
44
- value: 'node'
46
+ value: 'node' // Set runtime to NodeJS
45
47
  }
46
48
  {
47
49
  name: 'WEBSITE_CONTENTAZUREFILECONNECTIONSTRING'
48
- value: 'DefaultEndpointsProtocol=https;AccountName=${storage.name};AccountKey=${listKeys(storage.id, storage.apiVersion).keys[0].value};EndpointSuffix=${environment().suffixes.storage}'
50
+ value: 'DefaultEndpointsProtocol=https;AccountName=${storage.name};AccountKey=${listKeys(storage.id, storage.apiVersion).keys[0].value};EndpointSuffix=${environment().suffixes.storage}' // Azure Functions internal setting
49
51
  }
50
52
  {
51
53
  name: 'WEBSITE_RUN_FROM_PACKAGE'
52
- value: '1'
54
+ value: '1' // Run Azure Functions from a package file
53
55
  }
54
56
  {
55
57
  name: 'WEBSITE_NODE_DEFAULT_VERSION'
56
- value: '~14'
58
+ value: '~14' // Set NodeJS version to 14.x
57
59
  }
58
60
  ]
59
61
  }
@@ -61,11 +63,12 @@ resource functionApp 'Microsoft.Web/sites@2021-02-01' = {
61
63
  identity: {
62
64
  type: 'UserAssigned'
63
65
  userAssignedIdentities: {
64
- '${userAssignedIdentityId}': {}
66
+ '${userAssignedIdentityId}': {} // The identity is used to access other Azure resources
65
67
  }
66
68
  }
67
69
  }
68
70
 
71
+ // Azure Storage is required when creating Azure Functions instance
69
72
  resource storage 'Microsoft.Storage/storageAccounts@2021-06-01' = {
70
73
  name: storageName
71
74
  kind: 'StorageV2'
@@ -1,8 +1,9 @@
1
1
  @secure()
2
2
  param provisionParameters object
3
3
  var resourceBaseName = provisionParameters.resourceBaseName
4
- var identityName = contains(provisionParameters, 'userAssignedIdentityName') ? provisionParameters['userAssignedIdentityName'] : '${resourceBaseName}'
4
+ var identityName = contains(provisionParameters, 'userAssignedIdentityName') ? provisionParameters['userAssignedIdentityName'] : '${resourceBaseName}' // Try to read name for user assigned identity from parameters
5
5
 
6
+ // user assigned identity will be used to access other Azure resources
6
7
  resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = {
7
8
  name: identityName
8
9
  location: resourceGroup().location
@@ -1,15 +1,15 @@
1
1
  @secure()
2
2
  param provisionParameters object
3
- param userAssignedIdentityObjectId string
3
+ param userAssignedIdentityObjectId string // User assigned identity that will be grant Key Vault access permission
4
4
 
5
5
  var resourceBaseName = provisionParameters.resourceBaseName
6
- var keyVaultName = contains(provisionParameters, 'keyVaultName') ? provisionParameters['keyVaultName'] : '${resourceBaseName}'
6
+ var keyVaultName = contains(provisionParameters, 'keyVaultName') ? provisionParameters['keyVaultName'] : '${resourceBaseName}' // Try to read name for Key Vault from parameters
7
7
  var tenantId = subscription().tenantId
8
- var m365ClientSecretName = 'm365ClientSecret'
9
- var m365ClientSecret = provisionParameters['m365ClientSecret']
10
- var botClientSecretName = 'botClientSecret'
11
- var botClientSecret = contains(provisionParameters, 'botAadAppClientSecret') ? provisionParameters['botAadAppClientSecret'] : ''
12
- var keyVaultSkuName = contains(provisionParameters, 'keyVaultSkuName') ? provisionParameters['keyVaultSkuName'] : 'standard'
8
+ var m365ClientSecretName = 'm365ClientSecret' // Secret name of AAD app client secret
9
+ var m365ClientSecret = provisionParameters['m365ClientSecret'] // Read AAD app client secret from parameters
10
+ var botClientSecretName = 'botClientSecret' // Secret name of bot's AAD app client secret
11
+ var botClientSecret = contains(provisionParameters, 'botAadAppClientSecret') ? provisionParameters['botAadAppClientSecret'] : '' // Try to read bot's AAD app client secret from parameters
12
+ var keyVaultSkuName = contains(provisionParameters, 'keyVaultSkuName') ? provisionParameters['keyVaultSkuName'] : 'standard' // Try to read SKU for Key Vault from parameters
13
13
 
14
14
  resource keyVault 'Microsoft.KeyVault/vaults@2019-09-01' = {
15
15
  name: keyVaultName
@@ -34,6 +34,7 @@ resource keyVault 'Microsoft.KeyVault/vaults@2019-09-01' = {
34
34
  }
35
35
  }
36
36
 
37
+ // Set or update AAD app client secret if it's not empty in parameters
37
38
  resource clientSecretKv 'Microsoft.KeyVault/vaults/secrets@2019-09-01' = if (length(m365ClientSecret) != 0) {
38
39
  parent: keyVault
39
40
  name: m365ClientSecretName
@@ -42,6 +43,7 @@ resource clientSecretKv 'Microsoft.KeyVault/vaults/secrets@2019-09-01' = if (len
42
43
  }
43
44
  }
44
45
 
46
+ // Set or update bot's AAD app client secret if it's not empty in parameters
45
47
  resource botClientSecretKv 'Microsoft.KeyVault/vaults/secrets@2019-09-01' = if (length(botClientSecret) != 0) {
46
48
  parent: keyVault
47
49
  name: botClientSecretName
@@ -1,5 +1,7 @@
1
+ // Get existing app settings and site config for merge
1
2
  var simpleAuthCurrentAppSettings = list('${provisionOutputs.simpleAuthOutput.value.webAppResourceId}/config/appsettings', '2021-02-01').properties
2
3
 
4
+ // Merge TeamsFx configurations to Simple Auth resources
3
5
  module teamsFxSimpleAuthConfig '\{{fx-resource-simple-auth.Configuration.simpleAuth.path}}' = {
4
6
  name: 'addTeamsFxSimpleAuthConfiguration'
5
7
  params: {
@@ -47,14 +47,14 @@ var authorizedClientApplicationIds = '${teamsMobileOrDesktopAppClientId};${teams
47
47
  resource simpleAuthWebAppSettings 'Microsoft.Web/sites/config@2021-02-01' = {
48
48
  name: '${webAppName}/appsettings'
49
49
  properties: {
50
- AAD_METADATA_ADDRESS: aadMetadataAddress
51
- ALLOWED_APP_IDS: authorizedClientApplicationIds
52
- IDENTIFIER_URI: m365ApplicationIdUri
53
- CLIENT_ID: m365ClientId
54
- CLIENT_SECRET: m365ClientSecret
55
- OAUTH_AUTHORITY: oauthAuthority
50
+ AAD_METADATA_ADDRESS: aadMetadataAddress // AAD metadata address used to validate access tokens
51
+ ALLOWED_APP_IDS: authorizedClientApplicationIds // Only allow access tokens from these clients
52
+ IDENTIFIER_URI: m365ApplicationIdUri // Application ID URI of AAD app
53
+ CLIENT_ID: m365ClientId // Client id of AAD app
54
+ CLIENT_SECRET: m365ClientSecret // Client secret of AAD app
55
+ OAUTH_AUTHORITY: oauthAuthority // AAD authority
56
56
  {{#if (contains "fx-resource-frontend-hosting" plugins)}}
57
- TAB_APP_ENDPOINT: tabAppEndpoint
57
+ TAB_APP_ENDPOINT: tabAppEndpoint // Enable CORS for tab app
58
58
  {{/if}}
59
59
  }
60
60
  }
@@ -2,11 +2,12 @@
2
2
  param provisionParameters object
3
3
  param userAssignedIdentityId string
4
4
  var resourceBaseName = provisionParameters.resourceBaseName
5
- var sku = contains(provisionParameters, 'simpleAuthSku') ? provisionParameters['simpleAuthSku'] : 'F1'
6
- var serverFarmsName = contains(provisionParameters, 'simpleAuthServerFarmsName') ? provisionParameters['simpleAuthServerFarmsName'] : '${resourceBaseName}simpleAuth'
7
- var webAppName = contains(provisionParameters, 'simpleAuthWebAppName') ? provisionParameters['simpleAuthWebAppName'] : '${resourceBaseName}simpleAuth'
8
- var simpleAuthPackageUri = contains(provisionParameters, 'simpleAuthPackageUri') ? provisionParameters['simpleAuthPackageUri'] : 'https://github.com/OfficeDev/TeamsFx/releases/download/simpleauth@0.1.0/Microsoft.TeamsFx.SimpleAuth_0.1.0.zip'
5
+ var sku = contains(provisionParameters, 'simpleAuthSku') ? provisionParameters['simpleAuthSku'] : 'F1' // Try to read SKU for App Service Plan from parameters
6
+ var serverFarmsName = contains(provisionParameters, 'simpleAuthServerFarmsName') ? provisionParameters['simpleAuthServerFarmsName'] : '${resourceBaseName}simpleAuth' // Try to read name for App Service Plan from parameters
7
+ var webAppName = contains(provisionParameters, 'simpleAuthWebAppName') ? provisionParameters['simpleAuthWebAppName'] : '${resourceBaseName}simpleAuth' // Try to read name for Web App from parameters
8
+ var simpleAuthPackageUri = contains(provisionParameters, 'simpleAuthPackageUri') ? provisionParameters['simpleAuthPackageUri'] : 'https://github.com/OfficeDev/TeamsFx/releases/download/simpleauth@0.1.0/Microsoft.TeamsFx.SimpleAuth_0.1.0.zip' // Try to read url of Simple Auth bits from parameters
9
9
 
10
+ // Compute resources for Web App
10
11
  resource serverFarms 'Microsoft.Web/serverfarms@2021-02-01' = {
11
12
  name: serverFarmsName
12
13
  location: resourceGroup().location
@@ -16,22 +17,24 @@ resource serverFarms 'Microsoft.Web/serverfarms@2021-02-01' = {
16
17
  kind: 'app'
17
18
  }
18
19
 
20
+ // Web App that hosts Simple Auth
19
21
  resource webApp 'Microsoft.Web/sites@2021-02-01' = {
20
22
  kind: 'app'
21
23
  name: webAppName
22
24
  location: resourceGroup().location
23
25
  properties: {
24
26
  serverFarmId: serverFarms.id
25
- keyVaultReferenceIdentity: userAssignedIdentityId
27
+ keyVaultReferenceIdentity: userAssignedIdentityId // Use given user assigned identity to access Key Vault
26
28
  }
27
29
  identity: {
28
30
  type: 'UserAssigned'
29
31
  userAssignedIdentities: {
30
- '${userAssignedIdentityId}': {}
32
+ '${userAssignedIdentityId}': {} // The identity is used to access other Azure resources
31
33
  }
32
34
  }
33
35
  }
34
36
 
37
+ // Deploy Simple Auth bits to Web App
35
38
  resource simpleAuthDeploy 'Microsoft.Web/sites/extensions@2021-02-01' = {
36
39
  parent: webApp
37
40
  name: 'MSDeploy'
@@ -1,12 +1,13 @@
1
1
  @secure()
2
2
  param provisionParameters object
3
3
  var resourceBaseName = provisionParameters.resourceBaseName
4
- var sqlServerName = contains(provisionParameters, 'sqlServerName') ? provisionParameters['sqlServerName'] : '${resourceBaseName}'
5
- var sqlDatabaseName = contains(provisionParameters, 'sqlDatabaseName') ? provisionParameters['sqlDatabaseName'] : '${resourceBaseName}'
6
- var sqlDatabaseSku = contains(provisionParameters, 'sqlDatabaseSku') ? provisionParameters['sqlDatabaseSku'] : 'Basic'
7
- var administratorLogin = contains(provisionParameters, 'azureSqlAdmin') ? provisionParameters['azureSqlAdmin'] : ''
8
- var administratorLoginPassword = contains(provisionParameters, 'azureSqlAdminPassword') ? provisionParameters['azureSqlAdminPassword'] : ''
4
+ var sqlServerName = contains(provisionParameters, 'sqlServerName') ? provisionParameters['sqlServerName'] : '${resourceBaseName}' // Try to read name for SQL Server from parameters
5
+ var sqlDatabaseName = contains(provisionParameters, 'sqlDatabaseName') ? provisionParameters['sqlDatabaseName'] : '${resourceBaseName}' // Try to read name for SQL Database from parameters
6
+ var sqlDatabaseSku = contains(provisionParameters, 'sqlDatabaseSku') ? provisionParameters['sqlDatabaseSku'] : 'Basic' // Try to read SKU for SQL Database from parameters
7
+ var administratorLogin = contains(provisionParameters, 'azureSqlAdmin') ? provisionParameters['azureSqlAdmin'] : '' // Try to read admin name for SQL Server from parameters, the value must be empty or same with the admin name used to create SQL Server
8
+ var administratorLoginPassword = contains(provisionParameters, 'azureSqlAdminPassword') ? provisionParameters['azureSqlAdminPassword'] : '' // Try to read admin password for SQL Server from parameters, empty means do not update admin password
9
9
 
10
+ // SQL Server that hosts the databases
10
11
  resource sqlServer 'Microsoft.Sql/servers@2021-05-01-preview' = {
11
12
  location: resourceGroup().location
12
13
  name: sqlServerName
@@ -16,6 +17,7 @@ resource sqlServer 'Microsoft.Sql/servers@2021-05-01-preview' = {
16
17
  }
17
18
  }
18
19
 
20
+ // SQL Database
19
21
  resource sqlDatabase 'Microsoft.Sql/servers/databases@2021-05-01-preview' = {
20
22
  parent: sqlServer
21
23
  location: resourceGroup().location
@@ -25,6 +27,7 @@ resource sqlDatabase 'Microsoft.Sql/servers/databases@2021-05-01-preview' = {
25
27
  }
26
28
  }
27
29
 
30
+ // Allow Azure services connect to the SQL Server
28
31
  resource sqlFirewallRules 'Microsoft.Sql/servers/firewallRules@2021-05-01-preview' = {
29
32
  parent: sqlServer
30
33
  name: 'AllowAzure'
@@ -0,0 +1,10 @@
1
+ var webappCurrentAppSettings = list('${provisionOutputs.webappOutput.value.webAppResourceId}/config/appsettings', '2021-02-01').properties
2
+
3
+ module teamsFxWebappConfig '\{{fx-resource-frontend-hosting.Configuration.webapp.path}}' = {
4
+ name: 'addTeamsFxWebappConfiguration'
5
+ params: {
6
+ provisionParameters: provisionParameters
7
+ provisionOutputs: provisionOutputs
8
+ currentAppSettings: webappCurrentAppSettings
9
+ }
10
+ }