Skip to content

Allow bulk operations for all apps in an app catalog, Closes #442 - #689

Merged
Adam-it merged 6 commits into
pnp:devfrom
nicodecleyre:issue-442
Nov 11, 2026
Merged

Adam-it merged 6 commits into
pnp:devfrom
nicodecleyre:issue-442

Conversation

@nicodecleyre

Copy link
Copy Markdown
Contributor

🎯 Aim

This issue allows bulk operations for all apps in an app catalog

📷 Result

Screenshot 2026-01-14 003404

✅ What was done

  • bulk operations to:
  • Deploy
  • Retract
  • Remove
  • Enable
  • Disable
  • Install
  • Uninstall
  • Upgrade

🔗 Related issue

Closes: #442

@nicodecleyre
nicodecleyre changed the base branch from main to dev January 13, 2026 23:38
@Adam-it Adam-it self-assigned this Jan 15, 2026

@Adam-it Adam-it left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nicodecleyre awesome work!
I played around with it a bit and checked most of the bulk options

Image

What we forgot in this PR is updating the docs. Since docs are now part of our code we should update it together with the PR so when it gets shipped we wont miss to align the documenatation.

Also I would move the buld operations to a new SpgxAppCLIBulkAction.ts file to make for better maintability so we dont make the SpgxAppCLIAction to long

@Adam-it
Adam-it marked this pull request as draft January 15, 2026 23:26
@nicodecleyre
nicodecleyre force-pushed the issue-442 branch 3 times, most recently from fba1b4d to 609cf4a Compare February 3, 2026 19:29
@nicodecleyre
nicodecleyre marked this pull request as ready for review February 3, 2026 19:43

@Adam-it Adam-it left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nicodecleyre ready for another round?
I rechecked the PR and left a few comments we could recheck. Let me know if you need any help

@Adam-it
Adam-it marked this pull request as draft February 13, 2026 21:31
@Adam-it
Adam-it force-pushed the dev branch 2 times, most recently from 2c84a0b to fd39e59 Compare February 15, 2026 20:15
@Adam-it

Adam-it commented Feb 15, 2026

Copy link
Copy Markdown
Member

We just had a new minor release. We should rebase this branch, as well, before we proceed

@nicodecleyre
nicodecleyre force-pushed the issue-442 branch 2 times, most recently from 33028e8 to a988805 Compare February 22, 2026 15:33
@nicodecleyre
nicodecleyre marked this pull request as ready for review February 22, 2026 15:51

@Adam-it Adam-it left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nicodecleyre I added a few fixups but the PR is not ready yet.
I think during the refactor in the PR there was a logical error introduced in which in many places the url to site level app catalog is introduced instead of the url to the site

Image

I am still investigating this but from what I tested most of the bulk operations won't work due to this error. Maybe you wanna check this case as well.

Also shouldn't those bulk operations be also visible on tenant level app catalog?
I think it should that is why in SpfxAppCLIBulActions.ts in lines 603-618 we handle the case in which the app catalog is null and then the user may specify the relative site URL to which the app should be installed/uninstalled 🤔

@Adam-it
Adam-it marked this pull request as draft March 20, 2026 22:44
@Adam-it

Adam-it commented Mar 30, 2026

Copy link
Copy Markdown
Member

we also need to rebase this branch against latest dev since we just had a minor release

@Adam-it

Adam-it commented May 21, 2026

Copy link
Copy Markdown
Member

We just did a minor release of SPFx Toolkit, agian. Please rebase this branch to align with latest dev before we proceed

@Adam-it

Adam-it commented Jul 28, 2026

Copy link
Copy Markdown
Member

@nicodecleyre we had another minor release and we need to rebase this one again.
Also this PR is open for a long time and is quite inactive. Do you think it still makes sense? Maybe if we do not have time to commit to this feature lets close the PR and reopen the issue?

@nicodecleyre
nicodecleyre marked this pull request as ready for review August 2, 2026 16:13
@nicodecleyre

Copy link
Copy Markdown
Contributor Author

@nicodecleyre we had another minor release and we need to rebase this one again. Also this PR is open for a long time and is quite inactive. Do you think it still makes sense? Maybe if we do not have time to commit to this feature lets close the PR and reopen the issue?

Ready

@Adam-it Adam-it left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nicodecleyre unfortunately I still noticed a few issues with the PR a few of them quite important we need to address before we merge. Let's give this another go

Comment thread package.json Resolved
Comment thread src/constants/ContextKeys.ts Resolved
@Adam-it

Adam-it commented Oct 2, 2026

Copy link
Copy Markdown
Member

hey we just had a new minor release which means we aligned out main branch with dev. Please perform a rebase so we may proceed with a PR. You Rock 🤩

Adds bulk deploy/retract/remove/enable/disable/install/uninstall/upgrade
commands for app catalog apps, and fixes getAppCatalogUrlFromNode to
strip the /AppCatalog suffix and return undefined for the tenant catalog
node.

@Adam-it Adam-it left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🔥

@Adam-it
Adam-it merged commit ca989e0 into pnp:dev Nov 11, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

💡 [Feature]: Allow bulk operations for all apps in an app catalog

2 participants