workspace-architect 1.3.0 → 1.5.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 (354) hide show
  1. package/assets-manifest.json +3392 -0
  2. package/bin/cli.js +134 -72
  3. package/package.json +11 -2
  4. package/.env.example +0 -1
  5. package/.gitattributes +0 -1
  6. package/.github/workflows/manual-publish.yml +0 -36
  7. package/.github/workflows/sync-and-publish.yml +0 -58
  8. package/.release-it.json +0 -20
  9. package/CHANGELOG.md +0 -43
  10. package/assets/chatmodes/4.1-Beast.chatmode.md +0 -152
  11. package/assets/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -337
  12. package/assets/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -644
  13. package/assets/chatmodes/accessibility.chatmode.md +0 -298
  14. package/assets/chatmodes/address-comments.chatmode.md +0 -59
  15. package/assets/chatmodes/aem-frontend-specialist.chatmode.md +0 -385
  16. package/assets/chatmodes/api-architect.chatmode.md +0 -40
  17. package/assets/chatmodes/atlassian-requirements-to-jira.chatmode.md +0 -444
  18. package/assets/chatmodes/azure-logic-apps-expert.chatmode.md +0 -100
  19. package/assets/chatmodes/azure-principal-architect.chatmode.md +0 -58
  20. package/assets/chatmodes/azure-saas-architect.chatmode.md +0 -118
  21. package/assets/chatmodes/azure-verified-modules-bicep.chatmode.md +0 -44
  22. package/assets/chatmodes/azure-verified-modules-terraform.chatmode.md +0 -58
  23. package/assets/chatmodes/bicep-implement.chatmode.md +0 -40
  24. package/assets/chatmodes/bicep-plan.chatmode.md +0 -112
  25. package/assets/chatmodes/blueprint-mode-codex.chatmode.md +0 -110
  26. package/assets/chatmodes/blueprint-mode.chatmode.md +0 -171
  27. package/assets/chatmodes/clojure-interactive-programming.chatmode.md +0 -174
  28. package/assets/chatmodes/code-tour.chatmode.md +0 -205
  29. package/assets/chatmodes/critical-thinking.chatmode.md +0 -23
  30. package/assets/chatmodes/csharp-dotnet-janitor.chatmode.md +0 -83
  31. package/assets/chatmodes/csharp-mcp-expert.chatmode.md +0 -69
  32. package/assets/chatmodes/debug.chatmode.md +0 -79
  33. package/assets/chatmodes/declarative-agents-architect.chatmode.md +0 -76
  34. package/assets/chatmodes/demonstrate-understanding.chatmode.md +0 -60
  35. package/assets/chatmodes/dotnet-upgrade.chatmode.md +0 -222
  36. package/assets/chatmodes/drupal-expert.chatmode.md +0 -687
  37. package/assets/chatmodes/electron-angular-native.chatmode.md +0 -285
  38. package/assets/chatmodes/expert-cpp-software-engineer.chatmode.md +0 -27
  39. package/assets/chatmodes/expert-dotnet-software-engineer.chatmode.md +0 -22
  40. package/assets/chatmodes/expert-nextjs-developer.chatmode.md +0 -477
  41. package/assets/chatmodes/expert-react-frontend-engineer.chatmode.md +0 -738
  42. package/assets/chatmodes/gilfoyle.chatmode.md +0 -66
  43. package/assets/chatmodes/go-mcp-expert.chatmode.md +0 -122
  44. package/assets/chatmodes/gpt-5-beast-mode.chatmode.md +0 -109
  45. package/assets/chatmodes/hlbpa.chatmode.md +0 -232
  46. package/assets/chatmodes/implementation-plan.chatmode.md +0 -159
  47. package/assets/chatmodes/janitor.chatmode.md +0 -89
  48. package/assets/chatmodes/java-mcp-expert.chatmode.md +0 -325
  49. package/assets/chatmodes/kotlin-mcp-expert.chatmode.md +0 -181
  50. package/assets/chatmodes/kusto-assistant.chatmode.md +0 -143
  51. package/assets/chatmodes/laravel-expert-agent.chatmode.md +0 -628
  52. package/assets/chatmodes/mentor.chatmode.md +0 -32
  53. package/assets/chatmodes/meta-agentic-project-scaffold.chatmode.md +0 -15
  54. package/assets/chatmodes/microsoft-agent-framework-dotnet.chatmode.md +0 -62
  55. package/assets/chatmodes/microsoft-agent-framework-python.chatmode.md +0 -62
  56. package/assets/chatmodes/microsoft-study-mode.chatmode.md +0 -32
  57. package/assets/chatmodes/microsoft_learn_contributor.chatmode.md +0 -388
  58. package/assets/chatmodes/ms-sql-dba.chatmode.md +0 -25
  59. package/assets/chatmodes/php-mcp-expert.chatmode.md +0 -498
  60. package/assets/chatmodes/pimcore-expert.chatmode.md +0 -869
  61. package/assets/chatmodes/plan.chatmode.md +0 -114
  62. package/assets/chatmodes/planner.chatmode.md +0 -14
  63. package/assets/chatmodes/playwright-tester.chatmode.md +0 -13
  64. package/assets/chatmodes/postgresql-dba.chatmode.md +0 -17
  65. package/assets/chatmodes/power-bi-data-modeling-expert.chatmode.md +0 -319
  66. package/assets/chatmodes/power-bi-dax-expert.chatmode.md +0 -334
  67. package/assets/chatmodes/power-bi-performance-expert.chatmode.md +0 -533
  68. package/assets/chatmodes/power-bi-visualization-expert.chatmode.md +0 -549
  69. package/assets/chatmodes/power-platform-expert.chatmode.md +0 -116
  70. package/assets/chatmodes/power-platform-mcp-integration-expert.chatmode.md +0 -149
  71. package/assets/chatmodes/prd.chatmode.md +0 -201
  72. package/assets/chatmodes/principal-software-engineer.chatmode.md +0 -41
  73. package/assets/chatmodes/prompt-builder.chatmode.md +0 -352
  74. package/assets/chatmodes/prompt-engineer.chatmode.md +0 -72
  75. package/assets/chatmodes/python-mcp-expert.chatmode.md +0 -99
  76. package/assets/chatmodes/refine-issue.chatmode.md +0 -34
  77. package/assets/chatmodes/research-technical-spike.chatmode.md +0 -169
  78. package/assets/chatmodes/ruby-mcp-expert.chatmode.md +0 -346
  79. package/assets/chatmodes/rust-gpt-4.1-beast-mode.chatmode.md +0 -197
  80. package/assets/chatmodes/rust-mcp-expert.chatmode.md +0 -465
  81. package/assets/chatmodes/search-ai-optimization-expert.chatmode.md +0 -227
  82. package/assets/chatmodes/semantic-kernel-dotnet.chatmode.md +0 -31
  83. package/assets/chatmodes/semantic-kernel-python.chatmode.md +0 -28
  84. package/assets/chatmodes/shopify-expert.chatmode.md +0 -681
  85. package/assets/chatmodes/simple-app-idea-generator.chatmode.md +0 -134
  86. package/assets/chatmodes/software-engineer-agent-v1.chatmode.md +0 -164
  87. package/assets/chatmodes/specification.chatmode.md +0 -127
  88. package/assets/chatmodes/swift-mcp-expert.chatmode.md +0 -240
  89. package/assets/chatmodes/task-planner.chatmode.md +0 -374
  90. package/assets/chatmodes/task-researcher.chatmode.md +0 -254
  91. package/assets/chatmodes/tdd-green.chatmode.md +0 -59
  92. package/assets/chatmodes/tdd-red.chatmode.md +0 -59
  93. package/assets/chatmodes/tdd-refactor.chatmode.md +0 -84
  94. package/assets/chatmodes/tech-debt-remediation-plan.chatmode.md +0 -49
  95. package/assets/chatmodes/terraform-azure-implement.chatmode.md +0 -104
  96. package/assets/chatmodes/terraform-azure-planning.chatmode.md +0 -157
  97. package/assets/chatmodes/typescript-mcp-expert.chatmode.md +0 -91
  98. package/assets/chatmodes/voidbeast-gpt41enhanced.chatmode.md +0 -230
  99. package/assets/chatmodes/wg-code-alchemist.chatmode.md +0 -61
  100. package/assets/chatmodes/wg-code-sentinel.chatmode.md +0 -55
  101. package/assets/collections/ai-prompt-engineering.json +0 -18
  102. package/assets/collections/angular-development.json +0 -7
  103. package/assets/collections/azure-cloud-architect.json +0 -29
  104. package/assets/collections/cpp-development.json +0 -6
  105. package/assets/collections/database-administration.json +0 -8
  106. package/assets/collections/devops-sre.json +0 -11
  107. package/assets/collections/dotnet-development.json +0 -22
  108. package/assets/collections/general-productivity.json +0 -9
  109. package/assets/collections/go-development.json +0 -7
  110. package/assets/collections/java-spring-developer.json +0 -26
  111. package/assets/collections/learning-mentoring.json +0 -10
  112. package/assets/collections/legacy-migration.json +0 -4
  113. package/assets/collections/mcp-specialist.json +0 -41
  114. package/assets/collections/mobile-development.json +0 -4
  115. package/assets/collections/php-cms-development.json +0 -11
  116. package/assets/collections/power-platform-specialist.json +0 -31
  117. package/assets/collections/project-management.json +0 -12
  118. package/assets/collections/python-development.json +0 -13
  119. package/assets/collections/quality-assurance.json +0 -13
  120. package/assets/collections/ruby-development.json +0 -9
  121. package/assets/collections/rust-development.json +0 -10
  122. package/assets/collections/security-specialist.json +0 -8
  123. package/assets/collections/software-architect.json +0 -25
  124. package/assets/collections/technical-writing.json +0 -9
  125. package/assets/collections/web-frontend-development.json +0 -14
  126. package/assets/instructions/a11y.instructions.md +0 -369
  127. package/assets/instructions/ai-prompt-engineering-safety-best-practices.instructions.md +0 -867
  128. package/assets/instructions/angular.instructions.md +0 -104
  129. package/assets/instructions/ansible.instructions.md +0 -88
  130. package/assets/instructions/aspnet-rest-apis.instructions.md +0 -110
  131. package/assets/instructions/astro.instructions.md +0 -182
  132. package/assets/instructions/azure-devops-pipelines.instructions.md +0 -185
  133. package/assets/instructions/azure-functions-typescript.instructions.md +0 -14
  134. package/assets/instructions/azure-logic-apps-power-automate.instructions.md +0 -1943
  135. package/assets/instructions/azure-verified-modules-terraform.instructions.md +0 -229
  136. package/assets/instructions/bicep-code-best-practices.instructions.md +0 -54
  137. package/assets/instructions/blazor.instructions.md +0 -77
  138. package/assets/instructions/clojure.instructions.md +0 -349
  139. package/assets/instructions/cmake-vcpkg.instructions.md +0 -10
  140. package/assets/instructions/codexer.instructions.md +0 -428
  141. package/assets/instructions/coldfusion-cfc.instructions.md +0 -30
  142. package/assets/instructions/coldfusion-cfm.instructions.md +0 -28
  143. package/assets/instructions/collections.instructions.md +0 -54
  144. package/assets/instructions/containerization-docker-best-practices.instructions.md +0 -681
  145. package/assets/instructions/convert-jpa-to-spring-data-cosmos.instructions.md +0 -949
  146. package/assets/instructions/copilot-thought-logging.instructions.md +0 -62
  147. package/assets/instructions/csharp-ja.instructions.md +0 -114
  148. package/assets/instructions/csharp-ko.instructions.md +0 -77
  149. package/assets/instructions/csharp-mcp-server.instructions.md +0 -95
  150. package/assets/instructions/csharp.instructions.md +0 -114
  151. package/assets/instructions/dart-n-flutter.instructions.md +0 -447
  152. package/assets/instructions/declarative-agents-microsoft365.instructions.md +0 -316
  153. package/assets/instructions/devbox-image-definition.instructions.md +0 -302
  154. package/assets/instructions/devops-core-principles.instructions.md +0 -167
  155. package/assets/instructions/dotnet-architecture-good-practices.instructions.md +0 -279
  156. package/assets/instructions/dotnet-framework.instructions.md +0 -113
  157. package/assets/instructions/dotnet-maui-9-to-dotnet-maui-10-upgrade.instructions.md +0 -1922
  158. package/assets/instructions/dotnet-maui.instructions.md +0 -69
  159. package/assets/instructions/dotnet-upgrade.instructions.md +0 -287
  160. package/assets/instructions/dotnet-wpf.instructions.md +0 -79
  161. package/assets/instructions/genaiscript.instructions.md +0 -21
  162. package/assets/instructions/generate-modern-terraform-code-for-azure.instructions.md +0 -82
  163. package/assets/instructions/gilfoyle-code-review.instructions.md +0 -114
  164. package/assets/instructions/github-actions-ci-cd-best-practices.instructions.md +0 -607
  165. package/assets/instructions/go-mcp-server.instructions.md +0 -346
  166. package/assets/instructions/go.instructions.md +0 -373
  167. package/assets/instructions/instructions.instructions.md +0 -256
  168. package/assets/instructions/java-11-to-java-17-upgrade.instructions.md +0 -793
  169. package/assets/instructions/java-17-to-java-21-upgrade.instructions.md +0 -464
  170. package/assets/instructions/java-21-to-java-25-upgrade.instructions.md +0 -311
  171. package/assets/instructions/java-mcp-server.instructions.md +0 -553
  172. package/assets/instructions/java.instructions.md +0 -81
  173. package/assets/instructions/joyride-user-project.instructions.md +0 -206
  174. package/assets/instructions/joyride-workspace-automation.instructions.md +0 -46
  175. package/assets/instructions/kotlin-mcp-server.instructions.md +0 -481
  176. package/assets/instructions/kubernetes-deployment-best-practices.instructions.md +0 -307
  177. package/assets/instructions/langchain-python.instructions.md +0 -229
  178. package/assets/instructions/localization.instructions.md +0 -39
  179. package/assets/instructions/makefile.instructions.md +0 -410
  180. package/assets/instructions/markdown.instructions.md +0 -52
  181. package/assets/instructions/memory-bank.instructions.md +0 -299
  182. package/assets/instructions/mongo-dba.instructions.md +0 -25
  183. package/assets/instructions/ms-sql-dba.instructions.md +0 -25
  184. package/assets/instructions/nestjs.instructions.md +0 -406
  185. package/assets/instructions/nextjs-tailwind.instructions.md +0 -72
  186. package/assets/instructions/nextjs.instructions.md +0 -143
  187. package/assets/instructions/nodejs-javascript-vitest.instructions.md +0 -30
  188. package/assets/instructions/object-calisthenics.instructions.md +0 -302
  189. package/assets/instructions/oqtane.instructions.md +0 -86
  190. package/assets/instructions/performance-optimization.instructions.md +0 -420
  191. package/assets/instructions/php-mcp-server.instructions.md +0 -809
  192. package/assets/instructions/playwright-dotnet.instructions.md +0 -101
  193. package/assets/instructions/playwright-python.instructions.md +0 -62
  194. package/assets/instructions/playwright-typescript.instructions.md +0 -86
  195. package/assets/instructions/power-apps-canvas-yaml.instructions.md +0 -827
  196. package/assets/instructions/power-apps-code-apps.instructions.md +0 -601
  197. package/assets/instructions/power-bi-custom-visuals-development.instructions.md +0 -810
  198. package/assets/instructions/power-bi-data-modeling-best-practices.instructions.md +0 -639
  199. package/assets/instructions/power-bi-dax-best-practices.instructions.md +0 -795
  200. package/assets/instructions/power-bi-devops-alm-best-practices.instructions.md +0 -623
  201. package/assets/instructions/power-bi-report-design-best-practices.instructions.md +0 -752
  202. package/assets/instructions/power-bi-security-rls-best-practices.instructions.md +0 -504
  203. package/assets/instructions/power-platform-connector.instructions.md +0 -430
  204. package/assets/instructions/power-platform-mcp-development.instructions.md +0 -88
  205. package/assets/instructions/powershell-pester-5.instructions.md +0 -197
  206. package/assets/instructions/powershell.instructions.md +0 -356
  207. package/assets/instructions/prompt.instructions.md +0 -73
  208. package/assets/instructions/python-mcp-server.instructions.md +0 -204
  209. package/assets/instructions/python.instructions.md +0 -56
  210. package/assets/instructions/quarkus-mcp-server-sse.instructions.md +0 -49
  211. package/assets/instructions/quarkus.instructions.md +0 -98
  212. package/assets/instructions/r.instructions.md +0 -116
  213. package/assets/instructions/reactjs.instructions.md +0 -162
  214. package/assets/instructions/ruby-mcp-server.instructions.md +0 -629
  215. package/assets/instructions/ruby-on-rails.instructions.md +0 -124
  216. package/assets/instructions/rust-mcp-server.instructions.md +0 -715
  217. package/assets/instructions/rust.instructions.md +0 -135
  218. package/assets/instructions/security-and-owasp.instructions.md +0 -51
  219. package/assets/instructions/self-explanatory-code-commenting.instructions.md +0 -162
  220. package/assets/instructions/shell.instructions.md +0 -132
  221. package/assets/instructions/spec-driven-workflow-v1.instructions.md +0 -323
  222. package/assets/instructions/springboot.instructions.md +0 -68
  223. package/assets/instructions/sql-sp-generation.instructions.md +0 -74
  224. package/assets/instructions/svelte.instructions.md +0 -161
  225. package/assets/instructions/swift-mcp-server.instructions.md +0 -498
  226. package/assets/instructions/taming-copilot.instructions.md +0 -40
  227. package/assets/instructions/tanstack-start-shadcn-tailwind.instructions.md +0 -212
  228. package/assets/instructions/task-implementation.instructions.md +0 -190
  229. package/assets/instructions/tasksync.instructions.md +0 -352
  230. package/assets/instructions/terraform-azure.instructions.md +0 -254
  231. package/assets/instructions/terraform-sap-btp.instructions.md +0 -195
  232. package/assets/instructions/terraform.instructions.md +0 -113
  233. package/assets/instructions/typescript-5-es2022.instructions.md +0 -114
  234. package/assets/instructions/typescript-mcp-server.instructions.md +0 -228
  235. package/assets/instructions/update-code-from-shorthand.instructions.md +0 -130
  236. package/assets/instructions/vuejs3.instructions.md +0 -153
  237. package/assets/instructions/wordpress.instructions.md +0 -186
  238. package/assets/prompts/add-educational-comments.prompt.md +0 -129
  239. package/assets/prompts/ai-prompt-engineering-safety-review.prompt.md +0 -230
  240. package/assets/prompts/architecture-blueprint-generator.prompt.md +0 -322
  241. package/assets/prompts/aspnet-minimal-api-openapi.prompt.md +0 -42
  242. package/assets/prompts/az-cost-optimize.prompt.md +0 -305
  243. package/assets/prompts/azure-resource-health-diagnose.prompt.md +0 -290
  244. package/assets/prompts/boost-prompt.prompt.md +0 -25
  245. package/assets/prompts/breakdown-epic-arch.prompt.md +0 -66
  246. package/assets/prompts/breakdown-epic-pm.prompt.md +0 -58
  247. package/assets/prompts/breakdown-feature-implementation.prompt.md +0 -128
  248. package/assets/prompts/breakdown-feature-prd.prompt.md +0 -61
  249. package/assets/prompts/breakdown-plan.prompt.md +0 -509
  250. package/assets/prompts/breakdown-test.prompt.md +0 -365
  251. package/assets/prompts/code-exemplars-blueprint-generator.prompt.md +0 -126
  252. package/assets/prompts/comment-code-generate-a-tutorial.prompt.md +0 -26
  253. package/assets/prompts/containerize-aspnet-framework.prompt.md +0 -455
  254. package/assets/prompts/containerize-aspnetcore.prompt.md +0 -393
  255. package/assets/prompts/conventional-commit.prompt.md +0 -73
  256. package/assets/prompts/copilot-instructions-blueprint-generator.prompt.md +0 -294
  257. package/assets/prompts/cosmosdb-datamodeling.prompt.md +0 -1045
  258. package/assets/prompts/create-agentsmd.prompt.md +0 -249
  259. package/assets/prompts/create-architectural-decision-record.prompt.md +0 -97
  260. package/assets/prompts/create-github-action-workflow-specification.prompt.md +0 -276
  261. package/assets/prompts/create-github-issue-feature-from-specification.prompt.md +0 -28
  262. package/assets/prompts/create-github-issues-feature-from-implementation-plan.prompt.md +0 -28
  263. package/assets/prompts/create-github-issues-for-unmet-specification-requirements.prompt.md +0 -35
  264. package/assets/prompts/create-github-pull-request-from-specification.prompt.md +0 -24
  265. package/assets/prompts/create-implementation-plan.prompt.md +0 -157
  266. package/assets/prompts/create-llms.prompt.md +0 -210
  267. package/assets/prompts/create-oo-component-documentation.prompt.md +0 -193
  268. package/assets/prompts/create-readme.prompt.md +0 -21
  269. package/assets/prompts/create-specification.prompt.md +0 -127
  270. package/assets/prompts/create-spring-boot-java-project.prompt.md +0 -163
  271. package/assets/prompts/create-spring-boot-kotlin-project.prompt.md +0 -147
  272. package/assets/prompts/create-technical-spike.prompt.md +0 -231
  273. package/assets/prompts/csharp-async.prompt.md +0 -50
  274. package/assets/prompts/csharp-docs.prompt.md +0 -63
  275. package/assets/prompts/csharp-mcp-server-generator.prompt.md +0 -59
  276. package/assets/prompts/csharp-mstest.prompt.md +0 -67
  277. package/assets/prompts/csharp-nunit.prompt.md +0 -72
  278. package/assets/prompts/csharp-tunit.prompt.md +0 -101
  279. package/assets/prompts/csharp-xunit.prompt.md +0 -69
  280. package/assets/prompts/declarative-agents.prompt.md +0 -93
  281. package/assets/prompts/documentation-writer.prompt.md +0 -46
  282. package/assets/prompts/dotnet-best-practices.prompt.md +0 -84
  283. package/assets/prompts/dotnet-design-pattern-review.prompt.md +0 -41
  284. package/assets/prompts/dotnet-upgrade.prompt.md +0 -116
  285. package/assets/prompts/editorconfig.prompt.md +0 -64
  286. package/assets/prompts/ef-core.prompt.md +0 -76
  287. package/assets/prompts/finalize-agent-prompt.prompt.md +0 -27
  288. package/assets/prompts/first-ask.prompt.md +0 -29
  289. package/assets/prompts/folder-structure-blueprint-generator.prompt.md +0 -405
  290. package/assets/prompts/gen-specs-as-issues.prompt.md +0 -165
  291. package/assets/prompts/generate-custom-instructions-from-codebase.prompt.md +0 -240
  292. package/assets/prompts/git-flow-branch-creator.prompt.md +0 -293
  293. package/assets/prompts/github-copilot-starter.prompt.md +0 -372
  294. package/assets/prompts/go-mcp-server-generator.prompt.md +0 -334
  295. package/assets/prompts/java-docs.prompt.md +0 -24
  296. package/assets/prompts/java-junit.prompt.md +0 -64
  297. package/assets/prompts/java-mcp-server-generator.prompt.md +0 -756
  298. package/assets/prompts/java-refactoring-extract-method.prompt.md +0 -105
  299. package/assets/prompts/java-refactoring-remove-parameter.prompt.md +0 -85
  300. package/assets/prompts/java-springboot.prompt.md +0 -66
  301. package/assets/prompts/javascript-typescript-jest.prompt.md +0 -44
  302. package/assets/prompts/kotlin-mcp-server-generator.prompt.md +0 -449
  303. package/assets/prompts/kotlin-springboot.prompt.md +0 -71
  304. package/assets/prompts/mcp-copilot-studio-server-generator.prompt.md +0 -118
  305. package/assets/prompts/memory-merger.prompt.md +0 -107
  306. package/assets/prompts/mkdocs-translations.prompt.md +0 -110
  307. package/assets/prompts/model-recommendation.prompt.md +0 -677
  308. package/assets/prompts/multi-stage-dockerfile.prompt.md +0 -47
  309. package/assets/prompts/my-issues.prompt.md +0 -9
  310. package/assets/prompts/my-pull-requests.prompt.md +0 -15
  311. package/assets/prompts/next-intl-add-language.prompt.md +0 -20
  312. package/assets/prompts/php-mcp-server-generator.prompt.md +0 -522
  313. package/assets/prompts/playwright-automation-fill-in-form.prompt.md +0 -30
  314. package/assets/prompts/playwright-explore-website.prompt.md +0 -19
  315. package/assets/prompts/playwright-generate-test.prompt.md +0 -19
  316. package/assets/prompts/postgresql-code-review.prompt.md +0 -214
  317. package/assets/prompts/postgresql-optimization.prompt.md +0 -406
  318. package/assets/prompts/power-apps-code-app-scaffold.prompt.md +0 -150
  319. package/assets/prompts/power-bi-dax-optimization.prompt.md +0 -175
  320. package/assets/prompts/power-bi-model-design-review.prompt.md +0 -405
  321. package/assets/prompts/power-bi-performance-troubleshooting.prompt.md +0 -384
  322. package/assets/prompts/power-bi-report-design-consultation.prompt.md +0 -353
  323. package/assets/prompts/power-platform-mcp-connector-suite.prompt.md +0 -156
  324. package/assets/prompts/project-workflow-analysis-blueprint-generator.prompt.md +0 -294
  325. package/assets/prompts/prompt-builder.prompt.md +0 -142
  326. package/assets/prompts/pytest-coverage.prompt.md +0 -28
  327. package/assets/prompts/python-mcp-server-generator.prompt.md +0 -105
  328. package/assets/prompts/readme-blueprint-generator.prompt.md +0 -79
  329. package/assets/prompts/remember-interactive-programming.prompt.md +0 -13
  330. package/assets/prompts/remember.prompt.md +0 -125
  331. package/assets/prompts/repo-story-time.prompt.md +0 -156
  332. package/assets/prompts/review-and-refactor.prompt.md +0 -15
  333. package/assets/prompts/ruby-mcp-server-generator.prompt.md +0 -660
  334. package/assets/prompts/rust-mcp-server-generator.prompt.md +0 -578
  335. package/assets/prompts/shuffle-json-data.prompt.md +0 -151
  336. package/assets/prompts/sql-code-review.prompt.md +0 -303
  337. package/assets/prompts/sql-optimization.prompt.md +0 -298
  338. package/assets/prompts/suggest-awesome-github-copilot-agents.prompt.md +0 -72
  339. package/assets/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md +0 -71
  340. package/assets/prompts/suggest-awesome-github-copilot-collections.prompt.md +0 -149
  341. package/assets/prompts/suggest-awesome-github-copilot-instructions.prompt.md +0 -88
  342. package/assets/prompts/suggest-awesome-github-copilot-prompts.prompt.md +0 -71
  343. package/assets/prompts/swift-mcp-server-generator.prompt.md +0 -669
  344. package/assets/prompts/technology-stack-blueprint-generator.prompt.md +0 -242
  345. package/assets/prompts/typescript-mcp-server-generator.prompt.md +0 -90
  346. package/assets/prompts/update-avm-modules-in-bicep.prompt.md +0 -60
  347. package/assets/prompts/update-implementation-plan.prompt.md +0 -157
  348. package/assets/prompts/update-llms.prompt.md +0 -216
  349. package/assets/prompts/update-markdown-file-index.prompt.md +0 -76
  350. package/assets/prompts/update-oo-component-documentation.prompt.md +0 -162
  351. package/assets/prompts/update-specification.prompt.md +0 -127
  352. package/assets/prompts/write-coding-standards-from-file.prompt.md +0 -316
  353. package/scripts/sync.js +0 -99
  354. package/verdaccio/config.yaml +0 -202
@@ -1,623 +0,0 @@
1
- ---
2
- description: 'Comprehensive guide for Power BI DevOps, Application Lifecycle Management (ALM), CI/CD pipelines, deployment automation, and version control best practices.'
3
- applyTo: '**/*.{yml,yaml,ps1,json,pbix,pbir}'
4
- ---
5
-
6
- # Power BI DevOps and Application Lifecycle Management Best Practices
7
-
8
- ## Overview
9
- This document provides comprehensive instructions for implementing DevOps practices, CI/CD pipelines, and Application Lifecycle Management (ALM) for Power BI solutions, based on Microsoft's recommended patterns and best practices.
10
-
11
- ## Power BI Project Structure and Version Control
12
-
13
- ### 1. PBIP (Power BI Project) Structure
14
- ```markdown
15
- // Power BI project file organization
16
- ├── Model/
17
- │ ├── model.tmdl
18
- │ ├── tables/
19
- │ │ ├── FactSales.tmdl
20
- │ │ └── DimProduct.tmdl
21
- │ ├── relationships/
22
- │ │ └── relationships.tmdl
23
- │ └── measures/
24
- │ └── measures.tmdl
25
- ├── Report/
26
- │ ├── report.json
27
- │ ├── pages/
28
- │ │ ├── ReportSection1/
29
- │ │ │ ├── page.json
30
- │ │ │ └── visuals/
31
- │ │ └── pages.json
32
- │ └── bookmarks/
33
- └── .git/
34
- ```
35
-
36
- ### 2. Git Integration Best Practices
37
- ```powershell
38
- # Initialize Power BI project with Git
39
- git init
40
- git add .
41
- git commit -m "Initial Power BI project structure"
42
-
43
- # Create feature branch for development
44
- git checkout -b feature/new-dashboard
45
- git add Model/tables/NewTable.tmdl
46
- git commit -m "Add new dimension table"
47
-
48
- # Merge and deploy workflow
49
- git checkout main
50
- git merge feature/new-dashboard
51
- git tag -a v1.2.0 -m "Release version 1.2.0"
52
- ```
53
-
54
- ## Deployment Pipelines and Automation
55
-
56
- ### 1. Power BI Deployment Pipelines API
57
- ```powershell
58
- # Automated deployment using Power BI REST API
59
- $url = "pipelines/{0}/Deploy" -f "Insert your pipeline ID here"
60
- $body = @{
61
- sourceStageOrder = 0 # Development (0), Test (1)
62
- datasets = @(
63
- @{sourceId = "Insert your dataset ID here" }
64
- )
65
- reports = @(
66
- @{sourceId = "Insert your report ID here" }
67
- )
68
- dashboards = @(
69
- @{sourceId = "Insert your dashboard ID here" }
70
- )
71
-
72
- options = @{
73
- # Allows creating new item if needed on the Test stage workspace
74
- allowCreateArtifact = $TRUE
75
-
76
- # Allows overwriting existing item if needed on the Test stage workspace
77
- allowOverwriteArtifact = $TRUE
78
- }
79
- } | ConvertTo-Json
80
-
81
- $deployResult = Invoke-PowerBIRestMethod -Url $url -Method Post -Body $body | ConvertFrom-Json
82
-
83
- # Poll deployment status
84
- $url = "pipelines/{0}/Operations/{1}" -f "Insert your pipeline ID here",$deployResult.id
85
- $operation = Invoke-PowerBIRestMethod -Url $url -Method Get | ConvertFrom-Json
86
- while($operation.Status -eq "NotStarted" -or $operation.Status -eq "Executing")
87
- {
88
- # Sleep for 5 seconds
89
- Start-Sleep -s 5
90
- $operation = Invoke-PowerBIRestMethod -Url $url -Method Get | ConvertFrom-Json
91
- }
92
- ```
93
-
94
- ### 2. Azure DevOps Integration
95
- ```yaml
96
- # Azure DevOps pipeline for Power BI deployment
97
- trigger:
98
- - main
99
-
100
- pool:
101
- vmImage: windows-latest
102
-
103
- steps:
104
- - task: CopyFiles@2
105
- inputs:
106
- Contents: '**'
107
- TargetFolder: '$(Build.ArtifactStagingDirectory)'
108
- CleanTargetFolder: true
109
- ignoreMakeDirErrors: true
110
- displayName: 'Copy files from Repo'
111
-
112
- - task: PowerPlatformToolInstaller@2
113
- inputs:
114
- DefaultVersion: true
115
-
116
- - task: PowerPlatformExportData@2
117
- inputs:
118
- authenticationType: 'PowerPlatformSPN'
119
- PowerPlatformSPN: 'PowerBIServiceConnection'
120
- Environment: '$(BuildTools.EnvironmentUrl)'
121
- SchemaFile: '$(Build.ArtifactStagingDirectory)\source\schema.xml'
122
- DataFile: 'data.zip'
123
- displayName: 'Export Power BI metadata'
124
-
125
- - task: PowerShell@2
126
- inputs:
127
- targetType: 'inline'
128
- script: |
129
- # Deploy Power BI project using FabricPS-PBIP
130
- $workspaceName = "$(WorkspaceName)"
131
- $pbipSemanticModelPath = "$(Build.ArtifactStagingDirectory)\$(ProjectName).SemanticModel"
132
- $pbipReportPath = "$(Build.ArtifactStagingDirectory)\$(ProjectName).Report"
133
-
134
- # Download and install FabricPS-PBIP module
135
- New-Item -ItemType Directory -Path ".\modules" -ErrorAction SilentlyContinue | Out-Null
136
- @("https://raw.githubusercontent.com/microsoft/Analysis-Services/master/pbidevmode/fabricps-pbip/FabricPS-PBIP.psm1",
137
- "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/pbidevmode/fabricps-pbip/FabricPS-PBIP.psd1") |% {
138
- Invoke-WebRequest -Uri $_ -OutFile ".\modules\$(Split-Path $_ -Leaf)"
139
- }
140
-
141
- Import-Module ".\modules\FabricPS-PBIP" -Force
142
-
143
- # Authenticate and deploy
144
- Set-FabricAuthToken -reset
145
- $workspaceId = New-FabricWorkspace -name $workspaceName -skipErrorIfExists
146
- $semanticModelImport = Import-FabricItem -workspaceId $workspaceId -path $pbipSemanticModelPath
147
- $reportImport = Import-FabricItem -workspaceId $workspaceId -path $pbipReportPath -itemProperties @{"semanticModelId" = $semanticModelImport.Id}
148
- displayName: 'Deploy to Power BI Service'
149
- ```
150
-
151
- ### 3. Fabric REST API Deployment
152
- ```powershell
153
- # Complete PowerShell deployment script
154
- # Parameters
155
- $workspaceName = "[Workspace Name]"
156
- $pbipSemanticModelPath = "[PBIP Path]\[Item Name].SemanticModel"
157
- $pbipReportPath = "[PBIP Path]\[Item Name].Report"
158
- $currentPath = (Split-Path $MyInvocation.MyCommand.Definition -Parent)
159
- Set-Location $currentPath
160
-
161
- # Download modules and install
162
- New-Item -ItemType Directory -Path ".\modules" -ErrorAction SilentlyContinue | Out-Null
163
- @("https://raw.githubusercontent.com/microsoft/Analysis-Services/master/pbidevmode/fabricps-pbip/FabricPS-PBIP.psm1",
164
- "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/pbidevmode/fabricps-pbip/FabricPS-PBIP.psd1") |% {
165
- Invoke-WebRequest -Uri $_ -OutFile ".\modules\$(Split-Path $_ -Leaf)"
166
- }
167
-
168
- if(-not (Get-Module Az.Accounts -ListAvailable)) {
169
- Install-Module Az.Accounts -Scope CurrentUser -Force
170
- }
171
- Import-Module ".\modules\FabricPS-PBIP" -Force
172
-
173
- # Authenticate
174
- Set-FabricAuthToken -reset
175
-
176
- # Ensure workspace exists
177
- $workspaceId = New-FabricWorkspace -name $workspaceName -skipErrorIfExists
178
-
179
- # Import the semantic model and save the item id
180
- $semanticModelImport = Import-FabricItem -workspaceId $workspaceId -path $pbipSemanticModelPath
181
-
182
- # Import the report and ensure its bound to the previous imported semantic model
183
- $reportImport = Import-FabricItem -workspaceId $workspaceId -path $pbipReportPath -itemProperties @{"semanticModelId" = $semanticModelImport.Id}
184
- ```
185
-
186
- ## Environment Management
187
-
188
- ### 1. Multi-Environment Strategy
189
- ```json
190
- {
191
- "environments": {
192
- "development": {
193
- "workspaceId": "dev-workspace-id",
194
- "dataSourceUrl": "dev-database.database.windows.net",
195
- "refreshSchedule": "manual",
196
- "sensitivityLabel": "Internal"
197
- },
198
- "test": {
199
- "workspaceId": "test-workspace-id",
200
- "dataSourceUrl": "test-database.database.windows.net",
201
- "refreshSchedule": "daily",
202
- "sensitivityLabel": "Internal"
203
- },
204
- "production": {
205
- "workspaceId": "prod-workspace-id",
206
- "dataSourceUrl": "prod-database.database.windows.net",
207
- "refreshSchedule": "hourly",
208
- "sensitivityLabel": "Confidential"
209
- }
210
- }
211
- }
212
- ```
213
-
214
- ### 2. Parameter-Driven Deployment
215
- ```powershell
216
- # Environment-specific parameter management
217
- param(
218
- [Parameter(Mandatory=$true)]
219
- [ValidateSet("dev", "test", "prod")]
220
- [string]$Environment,
221
-
222
- [Parameter(Mandatory=$true)]
223
- [string]$WorkspaceName,
224
-
225
- [Parameter(Mandatory=$false)]
226
- [string]$DataSourceServer
227
- )
228
-
229
- # Load environment-specific configuration
230
- $configPath = ".\config\$Environment.json"
231
- $config = Get-Content $configPath | ConvertFrom-Json
232
-
233
- # Update connection strings based on environment
234
- $connectionString = "Data Source=$($config.dataSourceUrl);Initial Catalog=$($config.database);Integrated Security=SSPI;"
235
-
236
- # Deploy with environment-specific settings
237
- Write-Host "Deploying to $Environment environment..."
238
- Write-Host "Workspace: $($config.workspaceId)"
239
- Write-Host "Data Source: $($config.dataSourceUrl)"
240
- ```
241
-
242
- ## Automated Testing Framework
243
-
244
- ### 1. Data Quality Tests
245
- ```powershell
246
- # Automated data quality validation
247
- function Test-PowerBIDataQuality {
248
- param(
249
- [string]$WorkspaceId,
250
- [string]$DatasetId
251
- )
252
-
253
- # Test 1: Row count validation
254
- $rowCountQuery = @"
255
- EVALUATE
256
- ADDCOLUMNS(
257
- SUMMARIZE(Sales, Sales[Year]),
258
- "RowCount", COUNTROWS(Sales),
259
- "ExpectedMin", 1000,
260
- "Test", IF(COUNTROWS(Sales) >= 1000, "PASS", "FAIL")
261
- )
262
- "@
263
-
264
- # Test 2: Data freshness validation
265
- $freshnessQuery = @"
266
- EVALUATE
267
- ADDCOLUMNS(
268
- ROW("LastRefresh", MAX(Sales[Date])),
269
- "DaysOld", DATEDIFF(MAX(Sales[Date]), TODAY(), DAY),
270
- "Test", IF(DATEDIFF(MAX(Sales[Date]), TODAY(), DAY) <= 1, "PASS", "FAIL")
271
- )
272
- "@
273
-
274
- # Execute tests
275
- $rowCountResult = Invoke-PowerBIRestMethod -Url "groups/$WorkspaceId/datasets/$DatasetId/executeQueries" -Method Post -Body (@{queries=@(@{query=$rowCountQuery})} | ConvertTo-Json)
276
- $freshnessResult = Invoke-PowerBIRestMethod -Url "groups/$WorkspaceId/datasets/$DatasetId/executeQueries" -Method Post -Body (@{queries=@(@{query=$freshnessQuery})} | ConvertTo-Json)
277
-
278
- return @{
279
- RowCountTest = $rowCountResult
280
- FreshnessTest = $freshnessResult
281
- }
282
- }
283
- ```
284
-
285
- ### 2. Performance Regression Tests
286
- ```powershell
287
- # Performance benchmark testing
288
- function Test-PowerBIPerformance {
289
- param(
290
- [string]$WorkspaceId,
291
- [string]$ReportId
292
- )
293
-
294
- $performanceTests = @(
295
- @{
296
- Name = "Dashboard Load Time"
297
- Query = "EVALUATE TOPN(1000, Sales)"
298
- MaxDurationMs = 5000
299
- },
300
- @{
301
- Name = "Complex Calculation"
302
- Query = "EVALUATE ADDCOLUMNS(Sales, 'ComplexCalc', [Sales] * [Profit Margin %])"
303
- MaxDurationMs = 10000
304
- }
305
- )
306
-
307
- $results = @()
308
- foreach ($test in $performanceTests) {
309
- $startTime = Get-Date
310
- $result = Invoke-PowerBIRestMethod -Url "groups/$WorkspaceId/datasets/$DatasetId/executeQueries" -Method Post -Body (@{queries=@(@{query=$test.Query})} | ConvertTo-Json)
311
- $endTime = Get-Date
312
- $duration = ($endTime - $startTime).TotalMilliseconds
313
-
314
- $results += @{
315
- TestName = $test.Name
316
- Duration = $duration
317
- Passed = $duration -le $test.MaxDurationMs
318
- Threshold = $test.MaxDurationMs
319
- }
320
- }
321
-
322
- return $results
323
- }
324
- ```
325
-
326
- ## Configuration Management
327
-
328
- ### 1. Infrastructure as Code
329
- ```json
330
- {
331
- "workspace": {
332
- "name": "Production Analytics",
333
- "description": "Production Power BI workspace for sales analytics",
334
- "capacityId": "A1-capacity-id",
335
- "users": [
336
- {
337
- "emailAddress": "admin@contoso.com",
338
- "accessRight": "Admin"
339
- },
340
- {
341
- "emailAddress": "powerbi-service-principal@contoso.com",
342
- "accessRight": "Member",
343
- "principalType": "App"
344
- }
345
- ],
346
- "settings": {
347
- "datasetDefaultStorageFormat": "Large",
348
- "blockResourceKeyAuthentication": true
349
- }
350
- },
351
- "datasets": [
352
- {
353
- "name": "Sales Analytics",
354
- "refreshSchedule": {
355
- "enabled": true,
356
- "times": ["06:00", "12:00", "18:00"],
357
- "days": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
358
- "timeZone": "UTC"
359
- },
360
- "datasourceCredentials": {
361
- "credentialType": "OAuth2",
362
- "encryptedConnection": "Encrypted"
363
- }
364
- }
365
- ]
366
- }
367
- ```
368
-
369
- ### 2. Secret Management
370
- ```powershell
371
- # Azure Key Vault integration for secrets
372
- function Get-PowerBICredentials {
373
- param(
374
- [string]$KeyVaultName,
375
- [string]$Environment
376
- )
377
-
378
- # Retrieve secrets from Key Vault
379
- $servicePrincipalId = Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name "PowerBI-ServicePrincipal-Id-$Environment" -AsPlainText
380
- $servicePrincipalSecret = Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name "PowerBI-ServicePrincipal-Secret-$Environment" -AsPlainText
381
- $tenantId = Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name "PowerBI-TenantId-$Environment" -AsPlainText
382
-
383
- return @{
384
- ServicePrincipalId = $servicePrincipalId
385
- ServicePrincipalSecret = $servicePrincipalSecret
386
- TenantId = $tenantId
387
- }
388
- }
389
-
390
- # Authenticate using retrieved credentials
391
- $credentials = Get-PowerBICredentials -KeyVaultName "PowerBI-KeyVault" -Environment "Production"
392
- $securePassword = ConvertTo-SecureString $credentials.ServicePrincipalSecret -AsPlainText -Force
393
- $credential = New-Object System.Management.Automation.PSCredential($credentials.ServicePrincipalId, $securePassword)
394
- Connect-PowerBIServiceAccount -ServicePrincipal -Credential $credential -TenantId $credentials.TenantId
395
- ```
396
-
397
- ## Release Management
398
-
399
- ### 1. Release Pipeline
400
- ```yaml
401
- # Multi-stage release pipeline
402
- stages:
403
- - stage: Build
404
- displayName: 'Build Stage'
405
- jobs:
406
- - job: Build
407
- steps:
408
- - task: PowerShell@2
409
- displayName: 'Validate Power BI Project'
410
- inputs:
411
- targetType: 'inline'
412
- script: |
413
- # Validate PBIP structure
414
- if (-not (Test-Path "Model\model.tmdl")) {
415
- throw "Missing model.tmdl file"
416
- }
417
-
418
- # Validate required files
419
- $requiredFiles = @("Report\report.json", "Model\tables")
420
- foreach ($file in $requiredFiles) {
421
- if (-not (Test-Path $file)) {
422
- throw "Missing required file: $file"
423
- }
424
- }
425
-
426
- Write-Host "✅ Project validation passed"
427
-
428
- - stage: DeployTest
429
- displayName: 'Deploy to Test'
430
- dependsOn: Build
431
- condition: succeeded()
432
- jobs:
433
- - deployment: DeployTest
434
- environment: 'PowerBI-Test'
435
- strategy:
436
- runOnce:
437
- deploy:
438
- steps:
439
- - template: deploy-powerbi.yml
440
- parameters:
441
- environment: 'test'
442
- workspaceName: '$(TestWorkspaceName)'
443
-
444
- - stage: DeployProd
445
- displayName: 'Deploy to Production'
446
- dependsOn: DeployTest
447
- condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
448
- jobs:
449
- - deployment: DeployProd
450
- environment: 'PowerBI-Production'
451
- strategy:
452
- runOnce:
453
- deploy:
454
- steps:
455
- - template: deploy-powerbi.yml
456
- parameters:
457
- environment: 'prod'
458
- workspaceName: '$(ProdWorkspaceName)'
459
- ```
460
-
461
- ### 2. Rollback Strategy
462
- ```powershell
463
- # Automated rollback mechanism
464
- function Invoke-PowerBIRollback {
465
- param(
466
- [string]$WorkspaceId,
467
- [string]$BackupVersion,
468
- [string]$BackupLocation
469
- )
470
-
471
- Write-Host "Initiating rollback to version: $BackupVersion"
472
-
473
- # Step 1: Export current state as emergency backup
474
- $emergencyBackup = "emergency-backup-$(Get-Date -Format 'yyyyMMdd-HHmmss')"
475
- Export-PowerBIReport -WorkspaceId $WorkspaceId -BackupName $emergencyBackup
476
-
477
- # Step 2: Restore from backup
478
- $backupPath = Join-Path $BackupLocation "$BackupVersion.pbix"
479
- if (Test-Path $backupPath) {
480
- Import-PowerBIReport -WorkspaceId $WorkspaceId -FilePath $backupPath -ConflictAction "Overwrite"
481
- Write-Host "✅ Rollback completed successfully"
482
- } else {
483
- throw "Backup file not found: $backupPath"
484
- }
485
-
486
- # Step 3: Validate rollback
487
- Test-PowerBIDataQuality -WorkspaceId $WorkspaceId
488
- }
489
- ```
490
-
491
- ## Monitoring and Alerting
492
-
493
- ### 1. Deployment Health Checks
494
- ```powershell
495
- # Post-deployment validation
496
- function Test-DeploymentHealth {
497
- param(
498
- [string]$WorkspaceId,
499
- [array]$ExpectedReports,
500
- [array]$ExpectedDatasets
501
- )
502
-
503
- $healthCheck = @{
504
- Status = "Healthy"
505
- Issues = @()
506
- Timestamp = Get-Date
507
- }
508
-
509
- # Check reports
510
- $reports = Get-PowerBIReport -WorkspaceId $WorkspaceId
511
- foreach ($expectedReport in $ExpectedReports) {
512
- if (-not ($reports.Name -contains $expectedReport)) {
513
- $healthCheck.Issues += "Missing report: $expectedReport"
514
- $healthCheck.Status = "Unhealthy"
515
- }
516
- }
517
-
518
- # Check datasets
519
- $datasets = Get-PowerBIDataset -WorkspaceId $WorkspaceId
520
- foreach ($expectedDataset in $ExpectedDatasets) {
521
- $dataset = $datasets | Where-Object { $_.Name -eq $expectedDataset }
522
- if (-not $dataset) {
523
- $healthCheck.Issues += "Missing dataset: $expectedDataset"
524
- $healthCheck.Status = "Unhealthy"
525
- } elseif ($dataset.RefreshState -eq "Failed") {
526
- $healthCheck.Issues += "Dataset refresh failed: $expectedDataset"
527
- $healthCheck.Status = "Degraded"
528
- }
529
- }
530
-
531
- return $healthCheck
532
- }
533
- ```
534
-
535
- ### 2. Automated Alerting
536
- ```powershell
537
- # Teams notification for deployment status
538
- function Send-DeploymentNotification {
539
- param(
540
- [string]$TeamsWebhookUrl,
541
- [object]$DeploymentResult,
542
- [string]$Environment
543
- )
544
-
545
- $color = switch ($DeploymentResult.Status) {
546
- "Success" { "28A745" }
547
- "Warning" { "FFC107" }
548
- "Failed" { "DC3545" }
549
- }
550
-
551
- $teamsMessage = @{
552
- "@type" = "MessageCard"
553
- "@context" = "https://schema.org/extensions"
554
- "summary" = "Power BI Deployment $($DeploymentResult.Status)"
555
- "themeColor" = $color
556
- "sections" = @(
557
- @{
558
- "activityTitle" = "Power BI Deployment to $Environment"
559
- "activitySubtitle" = "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')"
560
- "facts" = @(
561
- @{
562
- "name" = "Status"
563
- "value" = $DeploymentResult.Status
564
- },
565
- @{
566
- "name" = "Duration"
567
- "value" = "$($DeploymentResult.Duration) minutes"
568
- },
569
- @{
570
- "name" = "Reports Deployed"
571
- "value" = $DeploymentResult.ReportsCount
572
- }
573
- )
574
- }
575
- )
576
- }
577
-
578
- Invoke-RestMethod -Uri $TeamsWebhookUrl -Method Post -Body ($teamsMessage | ConvertTo-Json -Depth 10) -ContentType 'application/json'
579
- }
580
- ```
581
-
582
- ## Best Practices Summary
583
-
584
- ### ✅ DevOps Best Practices
585
-
586
- 1. **Version Control Everything**
587
- - Use PBIP format for source control
588
- - Include model, reports, and configuration
589
- - Implement branching strategies (GitFlow)
590
-
591
- 2. **Automated Testing**
592
- - Data quality validation
593
- - Performance regression tests
594
- - Security compliance checks
595
-
596
- 3. **Environment Isolation**
597
- - Separate dev/test/prod environments
598
- - Environment-specific configurations
599
- - Automated promotion pipelines
600
-
601
- 4. **Security Integration**
602
- - Service principal authentication
603
- - Secret management with Key Vault
604
- - Role-based access controls
605
-
606
- ### ❌ Anti-Patterns to Avoid
607
-
608
- 1. **Manual Deployments**
609
- - Direct publishing from Desktop
610
- - Manual configuration changes
611
- - No rollback strategy
612
-
613
- 2. **Environment Coupling**
614
- - Hardcoded connection strings
615
- - Environment-specific reports
616
- - Manual testing only
617
-
618
- 3. **Poor Change Management**
619
- - No version control
620
- - Direct production changes
621
- - Missing audit trails
622
-
623
- Remember: DevOps for Power BI requires a combination of proper tooling, automated processes, and organizational discipline. Start with basic CI/CD and gradually mature your practices based on organizational needs and compliance requirements.