@pnp/cli-microsoft365 5.0.0-beta.6fb0d2a → 5.0.0-beta.77249d9

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 (65) hide show
  1. package/.devcontainer/devcontainer.json +12 -9
  2. package/.eslintrc.js +2 -0
  3. package/.mocharc.json +9 -0
  4. package/README.md +2 -2
  5. package/dist/Auth.js +22 -9
  6. package/dist/Command.js +1 -1
  7. package/dist/api.d.ts +13 -0
  8. package/dist/api.js +17 -0
  9. package/dist/cli/Cli.js +19 -4
  10. package/dist/m365/aad/commands/app/app-add.js +43 -7
  11. package/dist/m365/aad/commands/app/app-delete.js +123 -0
  12. package/dist/m365/aad/commands/app/app-get.js +56 -11
  13. package/dist/m365/aad/commands/app/app-set.js +98 -3
  14. package/dist/m365/aad/commands/group/group-list.js +14 -1
  15. package/dist/m365/aad/commands/o365group/o365group-conversation-list.js +41 -0
  16. package/dist/m365/aad/commands.js +2 -0
  17. package/dist/m365/cli/commands/config/config-set.js +1 -0
  18. package/dist/m365/outlook/commands/room/room-list.js +43 -0
  19. package/dist/m365/outlook/commands/roomlist/roomlist-list.js +25 -0
  20. package/dist/m365/outlook/commands.js +2 -0
  21. package/dist/m365/planner/commands/task/task-details-get.js +39 -0
  22. package/dist/m365/planner/commands/task/task-get.js +37 -0
  23. package/dist/m365/planner/commands/task/task-list.js +37 -7
  24. package/dist/m365/planner/commands.js +2 -0
  25. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.14.0-beta.5.js → upgrade-1.14.0.js} +25 -25
  26. package/dist/m365/spfx/commands/project/project-upgrade.js +13 -15
  27. package/dist/m365/spfx/commands/spfx-doctor.js +25 -6
  28. package/dist/m365/spo/commands/group/group-user-add.js +15 -8
  29. package/dist/m365/spo/commands/group/group-user-remove.js +100 -0
  30. package/dist/m365/spo/commands.js +1 -0
  31. package/dist/m365/teams/commands/app/app-install.js +75 -21
  32. package/dist/m365/teams/commands/app/app-update.js +54 -12
  33. package/dist/m365/teams/commands/channel/channel-get.js +29 -7
  34. package/dist/m365/teams/commands/chat/chat-message-send.js +225 -0
  35. package/dist/m365/teams/commands.js +1 -0
  36. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-get.js +39 -0
  37. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-list.js +38 -0
  38. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-get.js +3 -6
  39. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-list.js +6 -14
  40. package/dist/m365/tenant/commands.js +2 -0
  41. package/dist/settingsNames.js +7 -6
  42. package/docs/docs/cmd/aad/app/app-delete.md +51 -0
  43. package/docs/docs/cmd/aad/app/app-get.md +12 -1
  44. package/docs/docs/cmd/aad/app/app-set.md +21 -0
  45. package/docs/docs/cmd/aad/group/group-list.md +9 -0
  46. package/docs/docs/cmd/aad/o365group/o365group-conversation-list.md +24 -0
  47. package/docs/docs/cmd/outlook/room/room-list.md +30 -0
  48. package/docs/docs/cmd/outlook/roomlist/roomlist-list.md +21 -0
  49. package/docs/docs/cmd/planner/task/task-details-get.md +24 -0
  50. package/docs/docs/cmd/planner/task/task-get.md +29 -0
  51. package/docs/docs/cmd/planner/task/task-list.md +5 -0
  52. package/docs/docs/cmd/search/externalconnection/externalconnection-add.md +3 -3
  53. package/docs/docs/cmd/spfx/project/project-upgrade.md +8 -8
  54. package/docs/docs/cmd/spo/group/group-user-add.md +4 -0
  55. package/docs/docs/cmd/spo/group/group-user-remove.md +39 -0
  56. package/docs/docs/cmd/teams/app/app-install.md +22 -4
  57. package/docs/docs/cmd/teams/app/app-update.md +12 -3
  58. package/docs/docs/cmd/teams/channel/channel-get.md +11 -2
  59. package/docs/docs/cmd/teams/chat/chat-message-send.md +55 -0
  60. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-get.md +24 -0
  61. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-list.md +34 -0
  62. package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-list.md +3 -3
  63. package/npm-shrinkwrap.json +838 -767
  64. package/package.json +23 -18
  65. package/dist/m365/base/AadCommand.js +0 -10
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const request_1 = require("../../../../request");
4
+ const GraphCommand_1 = require("../../../base/GraphCommand");
5
+ const commands_1 = require("../../commands");
6
+ class TenantServiceAnnouncementHealthIssueGetCommand extends GraphCommand_1.default {
7
+ get name() {
8
+ return commands_1.default.SERVICEANNOUNCEMENT_HEALTHISSUE_GET;
9
+ }
10
+ get description() {
11
+ return 'Gets a specified service health issue for tenant';
12
+ }
13
+ commandAction(logger, args, cb) {
14
+ const requestOptions = {
15
+ url: `${this.resource}/v1.0/admin/serviceAnnouncement/issues/${encodeURIComponent(args.options.id)}`,
16
+ headers: {
17
+ accept: 'application/json;odata.metadata=none'
18
+ },
19
+ responseType: 'json'
20
+ };
21
+ request_1.default
22
+ .get(requestOptions)
23
+ .then((res) => {
24
+ logger.log(res);
25
+ cb();
26
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
27
+ }
28
+ options() {
29
+ const options = [
30
+ {
31
+ option: '-i, --id <id>'
32
+ }
33
+ ];
34
+ const parentOptions = super.options();
35
+ return options.concat(parentOptions);
36
+ }
37
+ }
38
+ module.exports = new TenantServiceAnnouncementHealthIssueGetCommand();
39
+ //# sourceMappingURL=serviceannouncement-healthissue-get.js.map
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const GraphItemsListCommand_1 = require("../../../base/GraphItemsListCommand");
4
+ const commands_1 = require("../../commands");
5
+ class TenantServiceAnnouncementHealthIssueListCommand extends GraphItemsListCommand_1.GraphItemsListCommand {
6
+ get name() {
7
+ return commands_1.default.SERVICEANNOUNCEMENT_HEALTHISSUE_LIST;
8
+ }
9
+ get description() {
10
+ return 'Gets all service health issues for the tenant';
11
+ }
12
+ defaultProperties() {
13
+ return ['id', 'title'];
14
+ }
15
+ commandAction(logger, args, cb) {
16
+ let endpoint = `${this.resource}/v1.0/admin/serviceAnnouncement/issues`;
17
+ if (args.options.service) {
18
+ endpoint += `?$filter=service eq '${encodeURIComponent(args.options.service)}'`;
19
+ }
20
+ this
21
+ .getAllItems(endpoint, logger, true)
22
+ .then(() => {
23
+ logger.log(this.items);
24
+ cb();
25
+ }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
26
+ }
27
+ options() {
28
+ const options = [
29
+ {
30
+ option: '-s, --service [service]'
31
+ }
32
+ ];
33
+ const parentOptions = super.options();
34
+ return options.concat(parentOptions);
35
+ }
36
+ }
37
+ module.exports = new TenantServiceAnnouncementHealthIssueListCommand();
38
+ //# sourceMappingURL=serviceannouncement-healthissue-list.js.map
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const GraphCommand_1 = require("../../../base/GraphCommand");
4
3
  const request_1 = require("../../../../request");
4
+ const GraphCommand_1 = require("../../../base/GraphCommand");
5
5
  const commands_1 = require("../../commands");
6
6
  class TenantServiceAnnouncementMessageGetCommand extends GraphCommand_1.default {
7
7
  get name() {
@@ -10,12 +10,9 @@ class TenantServiceAnnouncementMessageGetCommand extends GraphCommand_1.default
10
10
  get description() {
11
11
  return 'Retrieves a specified service update message for the tenant';
12
12
  }
13
- defaultProperties() {
14
- return ['startDateTime', 'endDateTime', 'lastModifiedDateTime', 'title', 'id', 'category', 'severity', 'tags', 'isMajorChange', 'actionRequiredByDateTime', 'services', 'expiryDateTime', 'hasAttachments', 'viewPoint'];
15
- }
16
13
  commandAction(logger, args, cb) {
17
14
  if (this.verbose) {
18
- logger.logToStderr(`Retrieving service update message ${args.id}`);
15
+ logger.logToStderr(`Retrieving service update message ${args.options.id}`);
19
16
  }
20
17
  const requestOptions = {
21
18
  url: `${this.resource}/v1.0/admin/serviceAnnouncement/messages/${args.options.id}`,
@@ -34,7 +31,7 @@ class TenantServiceAnnouncementMessageGetCommand extends GraphCommand_1.default
34
31
  options() {
35
32
  const options = [
36
33
  {
37
- option: '-i, --id [id]'
34
+ option: '-i, --id <id>'
38
35
  }
39
36
  ];
40
37
  const parentOptions = super.options();
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const request_1 = require("../../../../request");
4
3
  const GraphItemsListCommand_1 = require("../../../base/GraphItemsListCommand");
5
4
  const commands_1 = require("../../commands");
6
5
  class TenantServiceAnnouncementMessageListCommand extends GraphItemsListCommand_1.GraphItemsListCommand {
@@ -8,7 +7,7 @@ class TenantServiceAnnouncementMessageListCommand extends GraphItemsListCommand_
8
7
  return commands_1.default.SERVICEANNOUNCEMENT_MESSAGE_LIST;
9
8
  }
10
9
  get description() {
11
- return 'Gets all service update messages that exist for the tenant';
10
+ return 'Gets all service update messages for the tenant';
12
11
  }
13
12
  defaultProperties() {
14
13
  return ['id', 'title'];
@@ -18,24 +17,17 @@ class TenantServiceAnnouncementMessageListCommand extends GraphItemsListCommand_
18
17
  if (args.options.service) {
19
18
  endpoint += `?$filter=services/any(c:c+eq+'${encodeURIComponent(args.options.service)}')`;
20
19
  }
21
- const requestOptions = {
22
- url: endpoint,
23
- headers: {
24
- accept: 'application/json;odata.metadata=none'
25
- },
26
- responseType: 'json'
27
- };
28
- request_1.default
29
- .get(requestOptions)
30
- .then((res) => {
31
- logger.log(res.value);
20
+ this
21
+ .getAllItems(endpoint, logger, true)
22
+ .then(() => {
23
+ logger.log(this.items);
32
24
  cb();
33
25
  }, (err) => this.handleRejectedODataJsonPromise(err, logger, cb));
34
26
  }
35
27
  options() {
36
28
  const options = [
37
29
  {
38
- option: '-s, --service [service] '
30
+ option: '-s, --service [service]'
39
31
  }
40
32
  ];
41
33
  const parentOptions = super.options();
@@ -10,11 +10,13 @@ exports.default = {
10
10
  REPORT_OFFICE365ACTIVATIONSUSERDETAIL: `${prefix} report office365activationsuserdetail`,
11
11
  REPORT_OFFICE365ACTIVATIONSUSERCOUNTS: `${prefix} report office365activationsusercounts`,
12
12
  REPORT_SERVICESUSERCOUNTS: `${prefix} report servicesusercounts`,
13
+ SERVICEANNOUNCEMENT_HEALTHISSUE_GET: `${prefix} serviceannouncement healthissue get`,
13
14
  SERVICE_LIST: `${prefix} service list`,
14
15
  SERVICE_MESSAGE_LIST: `${prefix} service message list`,
15
16
  SERVICE_REPORT_HISTORICALSERVICESTATUS: `${prefix} service report historicalservicestatus`,
16
17
  SERVICEANNOUNCEMENT_HEALTH_GET: `${prefix} serviceannouncement health get`,
17
18
  SERVICEANNOUNCEMENT_HEALTH_LIST: `${prefix} serviceannouncement health list`,
19
+ SERVICEANNOUNCEMENT_HEALTHISSUE_LIST: `${prefix} serviceannouncement healthissue list`,
18
20
  SERVICEANNOUNCEMENT_MESSAGE_GET: `${prefix} serviceannouncement message get`,
19
21
  SERVICEANNOUNCEMENT_MESSAGE_LIST: `${prefix} serviceannouncement message list`,
20
22
  STATUS_LIST: `${prefix} status list`
@@ -2,15 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.settingsNames = void 0;
4
4
  const settingsNames = {
5
- errorOutput: 'errorOutput',
6
- output: 'output',
7
- printErrorsAsPlainText: 'printErrorsAsPlainText',
8
- showHelpOnFailure: 'showHelpOnFailure',
9
- csvHeader: 'csvHeader',
5
+ autoOpenBrowserOnLogin: 'autoOpenBrowserOnLogin',
10
6
  csvEscape: 'csvEscape',
7
+ csvHeader: 'csvHeader',
11
8
  csvQuote: 'csvQuote',
12
9
  csvQuoted: 'csvQuoted',
13
- csvQuotedEmpty: 'csvQuotedEmpty'
10
+ csvQuotedEmpty: 'csvQuotedEmpty',
11
+ errorOutput: 'errorOutput',
12
+ output: 'output',
13
+ printErrorsAsPlainText: 'printErrorsAsPlainText',
14
+ showHelpOnFailure: 'showHelpOnFailure'
14
15
  };
15
16
  exports.settingsNames = settingsNames;
16
17
  //# sourceMappingURL=settingsNames.js.map
@@ -0,0 +1,51 @@
1
+ # aad app delete
2
+
3
+ Removes an Azure AD app registration
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 aad app delete [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `--appId [appId]`
14
+ : Application (client) ID of the Azure AD application registration to remove. Specify either `appId`, `objectId` or `name`
15
+
16
+ `--objectId [objectId]`
17
+ : Object ID of the Azure AD application registration to remove. Specify either `appId`, `objectId` or `name`
18
+
19
+ `--name [name]`
20
+ : Name of the Azure AD application registration to remove. Specify either `appId`, `objectId` or `name`
21
+
22
+ `--confirm`:
23
+ : Don't prompt for confirmation to delete the app
24
+
25
+ --8<-- "docs/cmd/_global.md"
26
+
27
+ ## Remarks
28
+
29
+ For best performance use the `objectId` option to reference the Azure AD application registration to delete. If you use `appId` or `name`, this command will first need to find the corresponding object ID for that application.
30
+
31
+ If the command finds multiple Azure AD application registrations with the specified app name, it will prompt you to disambiguate which app it should use, listing the discovered object IDs.
32
+
33
+ ## Examples
34
+
35
+ Delete the Azure AD application registration by its app (client) ID
36
+
37
+ ```sh
38
+ m365 aad app delete --appId d75be2e1-0204-4f95-857d-51a37cf40be8
39
+ ```
40
+
41
+ Delete the Azure AD application registration by its object ID
42
+
43
+ ```sh
44
+ m365 aad app delete --objectId d75be2e1-0204-4f95-857d-51a37cf40be8
45
+ ```
46
+
47
+ Delete the Azure AD application registration by its name. Will NOT prompt for confirmation before deleting.
48
+
49
+ ```sh
50
+ m365 aad app delete --name "My app" --confirm
51
+ ```
@@ -19,14 +19,19 @@ m365 aad app get [options]
19
19
  `--name [name]`
20
20
  : Name of the Azure AD application registration to get. Specify either `appId`, `objectId` or `name`
21
21
 
22
+ `--save`
23
+ : Use to store the information about the created app in a local file
24
+
22
25
  --8<-- "docs/cmd/_global.md"
23
26
 
24
27
  ## Remarks
25
28
 
26
- For best performance use the `objectId` option to reference the Azure AD application registration to update. If you use `appId` or `name`, this command will first need to find the corresponding object ID for that application.
29
+ For best performance use the `objectId` option to reference the Azure AD application registration to get. If you use `appId` or `name`, this command will first need to find the corresponding object ID for that application.
27
30
 
28
31
  If the command finds multiple Azure AD application registrations with the specified app name, it will prompt you to disambiguate which app it should use, listing the discovered object IDs.
29
32
 
33
+ If you want to store the information about the Azure AD app registration, use the `--save` option. This is useful when you build solutions connected to Microsoft 365 and want to easily manage app registrations used with your solution. When you use the `--save` option, after you get the app registration, the command will write its ID and name to the `.m365rc.json` file in the current directory. If the file already exists, it will add the information about the App registration to it if it's not already present, allowing you to track multiple apps. If the file doesn't exist, the command will create it.
34
+
30
35
  ## Examples
31
36
 
32
37
  Get the Azure AD application registration by its app (client) ID
@@ -46,3 +51,9 @@ Get the Azure AD application registration by its name
46
51
  ```sh
47
52
  m365 aad app get --name "My app"
48
53
  ```
54
+
55
+ Get the Azure AD application registration by its name. Store information about the retrieved app registration in the _.m365rc.json_ file in the current directory.
56
+
57
+ ```sh
58
+ m365 aad app get --name "My app" --save
59
+ ```
@@ -22,6 +22,15 @@ m365 aad app set [options]
22
22
  `-u, --uri [uri]`
23
23
  : Application ID URI to update
24
24
 
25
+ `-r, --redirectUris [redirectUris]`
26
+ : Comma-separated list of redirect URIs to add to the app registration. Requires `platform` to be specified
27
+
28
+ `-p, --platform [platform]`
29
+ : Platform for which the `redirectUri` should be configured. Allowed values `spa,web,publicClient`
30
+
31
+ `--redirectUrisToRemove [redirectUrisToRemove]`
32
+ : Comma-separated list of existing redirect URIs to remove. Specify, when you want to replace existing redirect URIs with another
33
+
25
34
  --8<-- "docs/cmd/_global.md"
26
35
 
27
36
  ## Remarks
@@ -49,3 +58,15 @@ Update the app URI of the Azure AD application registration specified by its nam
49
58
  ```sh
50
59
  m365 aad app set --name "My app" --uri https://contoso.com/e75be2e1-0204-4f95-857d-51a37cf40be8
51
60
  ```
61
+
62
+ Add a new redirect URI for SPA authentication
63
+
64
+ ```sh
65
+ m365 aad app set --objectId 95cfe30d-ed44-4f9d-b73d-c66560f72e83 --redirectUris https://contoso.com/auth --platform spa
66
+ ```
67
+
68
+ Replace one redirect URI with another for SPA authentication
69
+
70
+ ```sh
71
+ m365 aad app set --objectId 95cfe30d-ed44-4f9d-b73d-c66560f72e83 --redirectUris https://contoso.com/auth --platform spa --redirectUrisToRemove https://contoso.com/old-auth
72
+ ```
@@ -10,6 +10,9 @@ m365 aad group list [options]
10
10
 
11
11
  ## Options
12
12
 
13
+ `-d, --deleted`
14
+ : Use to retrieve deleted groups
15
+
13
16
  --8<-- "docs/cmd/_global.md"
14
17
 
15
18
  ## Examples
@@ -18,4 +21,10 @@ Lists all groups defined in Azure Active Directory.
18
21
 
19
22
  ```sh
20
23
  m365 aad group list
24
+ ```
25
+
26
+ List all recently deleted groups in the tenant
27
+
28
+ ```sh
29
+ m365 aad group list --deleted
21
30
  ```
@@ -0,0 +1,24 @@
1
+ # aad o365group conversation list
2
+
3
+ Lists conversations for the specified Microsoft 365 group
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 aad o365group conversation list [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-i, --groupId <groupId>`
14
+ : The ID of the Microsoft 365 group
15
+
16
+ --8<-- "docs/cmd/_global.md"
17
+
18
+ ## Examples
19
+
20
+ Lists conversations for the specified Microsoft 365 group
21
+
22
+ ```sh
23
+ m365 aad o365group conversation list --groupId '00000000-0000-0000-0000-000000000000'
24
+ ```
@@ -0,0 +1,30 @@
1
+ # outlook room list
2
+
3
+ Get a collection of all available rooms
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 outlook room list [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `--roomlistEmail [roomlistEmail]`
14
+ : Use to filter returned rooms by their roomlist email (eg. bldg2@contoso.com)
15
+
16
+ --8<-- "docs/cmd/_global.md"
17
+
18
+ ## Examples
19
+
20
+ Get all the rooms
21
+
22
+ ```sh
23
+ m365 outlook room list
24
+ ```
25
+
26
+ Get all the rooms of specified roomlist e-mail address
27
+
28
+ ```sh
29
+ m365 outlook room list --roomlistEmail "bldg2@contoso.com"
30
+ ```
@@ -0,0 +1,21 @@
1
+ # outlook roomlist list
2
+
3
+ Get a collection of available roomlists
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 outlook roomlist list [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ --8<-- "docs/cmd/_global.md"
14
+
15
+ ## Examples
16
+
17
+ Get all roomlists in your tenant
18
+
19
+ ```sh
20
+ m365 outlook roomlist list
21
+ ```
@@ -0,0 +1,24 @@
1
+ # planner task details get
2
+
3
+ Retrieve the details of the specified planner task
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 planner task details get [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-i, --taskId <taskId>`
14
+ : ID of the task to retrieve details from
15
+
16
+ --8<-- "docs/cmd/_global.md"
17
+
18
+ ## Examples
19
+
20
+ Retrieve the details of the specified planner task
21
+
22
+ ```sh
23
+ m365 planner task details get --taskId 'vzCcZoOv-U27PwydxHB8opcADJo-'
24
+ ```
@@ -0,0 +1,29 @@
1
+ # planner task get
2
+
3
+ Retrieve the the specified planner task
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 planner task get [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-i, --id <id>`
14
+ : ID of the task to retrieve details from
15
+
16
+ --8<-- "docs/cmd/_global.md"
17
+
18
+ ## Remarks
19
+
20
+ !!! attention
21
+ This command uses an API that is currently in preview to enrich the results with the `priority` field. Keep in mind that this preview API is subject to change once the API reached general availability.
22
+
23
+ ## Examples
24
+
25
+ Retrieve the the specified planner task
26
+
27
+ ```sh
28
+ m365 planner task get --id 'vzCcZoOv-U27PwydxHB8opcADJo-'
29
+ ```
@@ -30,6 +30,11 @@ m365 planner task list [options]
30
30
 
31
31
  --8<-- "docs/cmd/_global.md"
32
32
 
33
+ ## Remarks
34
+
35
+ !!! attention
36
+ This command uses API that is currently in preview to enrich the results with the `priority` field. Keep in mind that this preview API is subject to change once the API reached general availability.
37
+
33
38
  ## Examples
34
39
 
35
40
  List tasks for the currently logged in user
@@ -30,14 +30,14 @@ The `id` must be at least 3 and no more than 32 characters long. It can contain
30
30
 
31
31
  ## Examples
32
32
 
33
- Adds a new external connection with name and description of test
33
+ Adds a new external connection with name and description of test app
34
34
 
35
35
  ```sh
36
- m365 search externalconnection add --id MyApp --name "My application" --description "Description of your application"
36
+ m365 search externalconnection add --id MyApp --name "Test" --description "Test"
37
37
  ```
38
38
 
39
39
  Adds a new external connection with a limited number of authorized apps
40
40
 
41
41
  ```sh
42
- m365 search externalconnection add --id MyApp --name "My application" --description "Description of your application" --authorizedAppIds "00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002"
42
+ m365 search externalconnection add --id MyApp --name "Test" --description "Test" --authorizedAppIds "00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002"
43
43
  ```
@@ -32,7 +32,7 @@ m365 spfx project upgrade [options]
32
32
 
33
33
  ## Remarks
34
34
 
35
- The `spfx project upgrade` command helps you upgrade your SharePoint Framework project to the specified version. If no version is specified, the command will upgrade to the latest version of the SharePoint Framework it supports (v1.13.1).
35
+ The `spfx project upgrade` command helps you upgrade your SharePoint Framework project to the specified version. If no version is specified, the command will upgrade to the latest version of the SharePoint Framework it supports (v1.14.0).
36
36
 
37
37
  This command doesn't change your project files. Instead, it gives you a report with all steps necessary to upgrade your project to the specified version of the SharePoint Framework. Changing project files is error-prone, especially when it comes to updating your solution's code. This is why at this moment, this command produces a report that you can use yourself to perform the necessary updates and verify that everything is working as expected.
38
38
 
@@ -47,41 +47,41 @@ m365 spfx project upgrade --toVersion 1.5.0 --output md > "upgrade-report.md"
47
47
  Get instructions to upgrade the current SharePoint Framework project to SharePoint Framework version 1.5.0 and show the summary of the findings in the shell
48
48
 
49
49
  ```sh
50
- m365 spfx project upgrade --toVersion 1.5.0
50
+ m365 spfx project upgrade --toVersion 1.5.0 --output text
51
51
  ```
52
52
 
53
53
  Get instructions to upgrade the current SharePoint Framework project to the latest preview version
54
54
 
55
55
  ```sh
56
- m365 spfx project upgrade --preview
56
+ m365 spfx project upgrade --preview --output text
57
57
  ```
58
58
 
59
59
  Get instructions to upgrade the current SharePoint Framework project to the specified preview version
60
60
 
61
61
  ```sh
62
- m365 spfx project upgrade --toVersion 1.12.1-rc.0
62
+ m365 spfx project upgrade --toVersion 1.12.1-rc.0 --output text
63
63
  ```
64
64
 
65
65
  Get instructions to upgrade the current SharePoint Framework project to the latest SharePoint Framework version supported by the CLI for Microsoft 365 using pnpm
66
66
 
67
67
  ```sh
68
- m365 spfx project upgrade --packageManager pnpm
68
+ m365 spfx project upgrade --packageManager pnpm --output text
69
69
  ```
70
70
 
71
71
  Get instructions to upgrade the current SharePoint Framework project to the latest SharePoint Framework version supported by the CLI for Microsoft 365
72
72
 
73
73
  ```sh
74
- m365 spfx project upgrade
74
+ m365 spfx project upgrade --output text
75
75
  ```
76
76
 
77
77
  Get instructions to upgrade the current SharePoint Framework project to the latest SharePoint Framework version supported by the CLI for Microsoft 365 using PowerShell
78
78
 
79
79
  ```sh
80
- m365 spfx project upgrade --shell powershell
80
+ m365 spfx project upgrade --shell powershell --output text
81
81
  ```
82
82
 
83
83
  Get instructions to upgrade the current SharePoint Framework project to the latest version of SharePoint Framework and save the findings in a [CodeTour](https://aka.ms/codetour) file
84
84
 
85
85
  ```sh
86
- m365 spfx project upgrade --output tour
86
+ m365 spfx project upgrade --output tour
87
87
  ```
@@ -27,6 +27,10 @@ m365 spo group user add [options]
27
27
 
28
28
  --8<-- "docs/cmd/_global.md"
29
29
 
30
+ ## Remarks
31
+
32
+ For the `--userName` or `--email` options you can specify multiple values by separating them with a comma. If one of the specified entries is not valid, the command will fail with an error message showing the list invalid values.
33
+
30
34
  ## Examples
31
35
 
32
36
  Add a user with name _Alex.Wilber@contoso.com_ to the SharePoint group with id _5_ available on the web _https://contoso.sharepoint.com/sites/SiteA_
@@ -0,0 +1,39 @@
1
+ # spo group user remove
2
+
3
+ Removes the specified user from a SharePoint group
4
+
5
+ ## Usage
6
+
7
+ ```sh
8
+ m365 spo group user remove [options]
9
+ ```
10
+
11
+ ## Options
12
+
13
+ `-u, --webUrl <webUrl>`
14
+ : URL of the site where the SharePoint group is available
15
+
16
+ `--groupId [groupId]`
17
+ : Id of the SharePoint group from which user has to be removed from. Use either `groupName` or `groupId`, but not both
18
+
19
+ `--groupName [groupName]`
20
+ : Name of the SharePoint group from which user has to be removed from. Use either `groupName` or `groupId`, but not both
21
+
22
+ `--userName <userName>`
23
+ : User's UPN (user principal name, eg. megan.bowen@contoso.com).
24
+
25
+ --8<-- "docs/cmd/_global.md"
26
+
27
+ ## Examples
28
+
29
+ Remove a user from SharePoint group with id _5_ available on the web _https://contoso.sharepoint.com/sites/SiteA_
30
+
31
+ ```sh
32
+ m365 spo group user remove --webUrl https://contoso.sharepoint.com/sites/SiteA --groupId 5 --userName "Alex.Wilber@contoso.com"
33
+ ```
34
+
35
+ Remove a user from SharePoint group with Name _Site A Visitors_ available on the web _https://contoso.sharepoint.com/sites/SiteA_
36
+
37
+ ```sh
38
+ m365 spo group user remove --webUrl https://contoso.sharepoint.com/sites/SiteA --groupName "Site A Visitors" --userName "Alex.Wilber@contoso.com"
39
+ ```
@@ -1,6 +1,6 @@
1
1
  # teams app install
2
2
 
3
- Installs an app from the catalog to a Microsoft Teams team
3
+ Installs a Microsoft Teams team app from the catalog in the specified team or for the specified user
4
4
 
5
5
  ## Usage
6
6
 
@@ -13,14 +13,20 @@ m365 teams app install [options]
13
13
  `--appId <appId>`
14
14
  : The ID of the app to install
15
15
 
16
- `--teamId <teamId>`
16
+ `--teamId [teamId]`
17
17
  : The ID of the Microsoft Teams team to which to install the app
18
18
 
19
+ `--userId [userId]`
20
+ : The ID of the user for who to install the app. Specify either `userId` or `userName` to install a personal app for a user.
21
+
22
+ `--userName [userName]`
23
+ : The UPN of the user for who to install the app. Specify either `userId` or `userName` to install a personal app for a user.
24
+
19
25
  --8<-- "docs/cmd/_global.md"
20
26
 
21
27
  ## Remarks
22
28
 
23
- The `appId` has to be the ID of the app from the Microsoft Teams App Catalog. Do not use the ID from the manifest of the zip app package. Use the [teams app list](./app-list.md) command to get this ID.
29
+ The `appId` has to be the ID of the app from the Microsoft Teams App Catalog. Do not use the ID from the manifest of the zip app package. Use the [teams app list](./app-list.md) command to get this ID instead.
24
30
 
25
31
  ## Examples
26
32
 
@@ -28,4 +34,16 @@ Install an app from the catalog in a Microsoft Teams team
28
34
 
29
35
  ```sh
30
36
  m365 teams app install --appId 4440558e-8c73-4597-abc7-3644a64c4bce --teamId 2609af39-7775-4f94-a3dc-0dd67657e900
31
- ```
37
+ ```
38
+
39
+ Install a personal app for the user specified using their user name
40
+
41
+ ```sh
42
+ m365 teams app install --appId 4440558e-8c73-4597-abc7-3644a64c4bce --userName steve@contoso.com
43
+ ```
44
+
45
+ Install a personal app for the user specified using their ID
46
+
47
+ ```sh
48
+ m365 teams app install --appId 4440558e-8c73-4597-abc7-3644a64c4bce --userId 2609af39-7775-4f94-a3dc-0dd67657e900
49
+ ```