cli-microsoft365 icon indicating copy to clipboard operation
cli-microsoft365 copied to clipboard

Implement more PowerPlatform commands

Open appieschot opened this issue 3 years ago • 22 comments

With the advent of hacktober fest and our ambition to create a set of new good first issues following a list of commands we need for the Power Platform, a first 'shot' at it below. Lets gather additional requests in this issue and create new issues based on them.

Good first issues

Issues that should be relatively easy since we already have some of the stuff in place

  • [x] m365 pp environment get, see #3710
  • [x] m365 pp gateway get see #3728
  • [x] m365 pp solution list see #3711
  • [x] m365 pp tenant settings list see #3657

The following are straightforward but require a little bit of research for the exact URL's, with some investigation from our side we can make them as 'good first issue', ordered by amount of work to spec:

  • [x] m365 pp solution list see #3711
  • [x] m365 pp solution get see #3722
  • [x] m365 pp solution remove see #3723
  • [x] m365 pp solution publish see #3805
  • [x] m365 pp solution publisher add see #3977
  • [x] m365 pp solution publisher list see #3766
  • [x] m365 pp solution publisher get see #3949
  • [x] m365 pp solution publisher remove see #3950
  • [x] m365 pp solution publisher add see #3977
  • [x] m365 pp dataverse table list see #3653
  • [x] m365 pp dataverse table get see #3726
  • [x] m365 pp card list #3767
  • [x] m365 pp card get #3770
  • [x] m365 pp card remove #3781
  • [x] m365 pp card clone #3790
  • [x] m365 pp dataverse table remove #4031
  • [x] m365 pp dataverse table row list see #3791
  • [x] m365 pp dataverse table row remove see #4030
  • [ ] m365 pp dataverse table row set
  • [ ] m365 pp dataverse table row move (to associate with other table?)
  • [ ] m365 pp dataverse table row merge
  • [ ] m365 pp dataverse table row add
  • [ ] m365 pp dataverse table column list
  • [ ] m365 pp dataverse table column get
  • [ ] m365 pp dataverse table column remove
  • [x] m365 pp chatbot list #3650
  • [x] m365 pp chatbot get #4107
  • [x] m365 pp chatbot remove #4106
  • [ ] m365 pp solution add
  • [ ] m365 pp solution set to set the publisher, version and description
  • [ ] m365 pp dataverse table businessrule list
  • [ ] m365 pp dataverse dataflow list
  • [ ] m365 pp dataverse dataflow get
  • [ ] m365 pp dataverse dataflow remove
  • [ ] m365 pp dataverse connection list
  • [ ] m365 pp dataverse connection get
  • [ ] m365 pp dataverse connection remove
  • [ ] m365 pp dataverse customconnector list validate if we need customconnector or connector
  • [x] m365 pp aibuildermodel list #4174
  • [x] m365 pp aibuildermodel get #4325
  • [x] m365 pp aibuildermodel remove #4326
  • [ ] m365 pp dataverse connection list
  • [ ] m365 pp dataverse connection get
  • [ ] m365 pp dataverse connection remove
  • [ ] m365 pp website list #6256
  • [ ] m365 pp website get #6259
  • [ ] m365 pp website remove #6257
  • [ ] m365 pp website webfile list #6262
  • [ ] m365 pp website webfile add
  • [ ] m365 pp website webfile remove
  • [ ] m365 pp website webfile get #6273
  • [ ] m365 pp website weblink list #6269
  • [ ] m365 pp website weblink add
  • [ ] m365 pp website weblink remove
  • [ ] m365 pp website weblink get #6277
  • [ ] m365 pp website webrole list #6281
  • [ ] m365 pp website webrole add
  • [ ] m365 pp website webrole remove
  • [ ] m365 pp website webrole get

Needs research to execute more complex Dynamic Queries first

  • [ ] m365 pp data export (see pac data export)
  • [ ] m365 pp data import (see pac data import)
  • [ ] m365 pp connector list (see pac connector list)
  • [ ] m365 pp connector get (see `pac connector download)
  • [ ] m365 pp dataverse query -> we need to figure out if we do a generic query and pass the table + query or if we need other advanced scenario's. See https://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/query-data-web-api
  • [ ] m365 pp dataverse webresource list
  • [ ] m365 pp dataverse webresource get
  • [ ] m365 pp dataverse webresource export
  • [ ] m365 pp dataverse webresource import
  • [ ] m365 pp website webfile preview
  • [ ] m365 pp website webfile sync

Needs research for what API to use (most likely easy as it is part of the PowerShell or PAC)

  • [x] m365 pp tenant settings set #4572
  • [x] Touch base for pa app consent set #2420
  • [ ] pipelines options (list / get / edit/set/ remove)
  • [ ] Create and manage webfiles: https://learn.microsoft.com/en-us/power-pages/configure/web-files
  • [ ] CRUD for pages

V2 release

  • [ ] pp solution export
  • [ ] pp solution import

V3 release

  • Support gov cloud environments, some research available in #2961 Let's look at: https://powerapps.microsoft.com/en-us/blog/automate-deployments-with-power-platform-pipelines-now-in-preview/leuk

appieschot avatar Sep 13 '22 08:09 appieschot

What about pp solution export and pp solution import?

martinlingstuyl avatar Sep 13 '22 08:09 martinlingstuyl

@martinlingstuyl would be a great addition, but already part of the pac cli, so my vote would be to prioritize them last and focus on the stuff that's not there yet.

appieschot avatar Sep 16 '22 06:09 appieschot

That's fine with me!

martinlingstuyl avatar Sep 16 '22 07:09 martinlingstuyl

Adding them to the epic would still be good though

martinlingstuyl avatar Sep 16 '22 07:09 martinlingstuyl

Done :D

appieschot avatar Sep 16 '22 12:09 appieschot

I'd love to see commands like the below to improve the inner dev loop when working on web resources. This would save having to use other [still great] tools like spkl from Scott Durow and XrmToolBox plugins.

  • pp dataverse webresource list
  • pp dataverse webresource get
  • pp dataverse webresource export
  • pp dataverse webresource import

Each with options to provide a --solution and --environment amongst other options.

Unsure whether it would be better placed under pa webresource list, given web resources are generally used in model-driven Power Apps. Or possible via pa solution webresource [list/get/export/import] given that pa solution uses a solution project in the current directory.

Thoughts? I'd love to contribute to the design/dev if you think there would be interest.

ryanspain avatar Oct 06 '22 12:10 ryanspain

@ryanspain that totally makes sense, feels like we should put them under our dataverse command as from what I know a web resource is stored in the dataverse database and thus feels 'correct' to group under there.

We would love to have them specced. I have added them to the epic and feel free to spec out!.

appieschot avatar Oct 06 '22 18:10 appieschot

Note to self: https://learn.microsoft.com/en-us/power-automate/web-api we can use this to retrieve flows as well :)

appieschot avatar Nov 18 '22 10:11 appieschot

@nicodecleyre since you already did some awesome work with #4174 would you mind giving speccing the get and remove versions a stab as well? Looks like our full list is almost complete so would be awesome!

appieschot avatar Jan 05 '23 09:01 appieschot

@nicodecleyre since you already did some awesome work with #4174 would you mind giving speccing the get and remove versions a stab as well? Looks like our full list is almost complete so would be awesome!

Done!

  • [ ] #4325
  • [ ] #4326

nicodecleyre avatar Jan 10 '23 08:01 nicodecleyre

@nicodecleyre since you already did some awesome work with #4174 would you mind giving speccing the get and remove versions a stab as well? Looks like our full list is almost complete so would be awesome!

Done!

* [ ]  [New command: `m365 pp aibuildermodel get` #4325](https://github.com/pnp/cli-microsoft365/issues/4325)

* [ ]  [New command: `m365 pp aibuildermodel remove` #4326](https://github.com/pnp/cli-microsoft365/issues/4326)

Included them in the specs of this epic

milanholemans avatar Jan 10 '23 09:01 milanholemans