@pnp/cli-microsoft365 6.7.0-beta.eb19618 → 6.7.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.
package/README.md CHANGED
@@ -31,7 +31,7 @@
31
31
  <img src="https://img.shields.io/npm/v/@pnp/cli-microsoft365/latest?style=flat-square"
32
32
  alt="npm @pnp/cli-microsoft365@latest" />
33
33
  </a>
34
-
34
+
35
35
  <a href="https://www.npmjs.com/package/@pnp/cli-microsoft365">
36
36
  <img src="https://img.shields.io/npm/v/@pnp/cli-microsoft365/next?style=flat-square"
37
37
  alt="npm @pnp/cli-microsoft365@next" />
@@ -41,16 +41,16 @@
41
41
  <p align="center">CLI for Microsoft 365 helps you manage your Microsoft 365 tenant and SharePoint Framework projects.</p>
42
42
 
43
43
  <p align="center">
44
- <a href="https://pnp.github.io/cli-microsoft365">Website</a> |
44
+ <a href="https://pnp.github.io/cli-microsoft365">Website</a> |
45
45
  <a href="#features">Features</a> |
46
- <a href="#install">Install</a> |
47
- <a href="#usage">Usage</a> |
48
- <a href="#build">Build</a> |
46
+ <a href="#install">Install</a> |
47
+ <a href="#usage">Usage</a> |
48
+ <a href="#build">Build</a> |
49
49
  <a href="#contribute">Contribute</a>
50
50
  </p>
51
51
  <p align="center">
52
52
  <a href="#sharing-is-caring">Sharing is Caring</a> |
53
- <a href="#code-of-conduct">Code of Conduct</a> |
53
+ <a href="#code-of-conduct">Code of Conduct</a> |
54
54
  <a href="#disclaimer">Disclaimer</a>
55
55
  </p>
56
56
 
@@ -91,7 +91,7 @@
91
91
  - Device Code
92
92
  - Username and Password
93
93
  - Manage your SharePoint Framework projects
94
- - Uprade your projects
94
+ - Upgrade your projects
95
95
  - Check your environment compatibility
96
96
 
97
97
  > Follow our [Twitter](https://twitter.com/climicrosoft365) account to keep yourself updated about new features, improvements, and bug fixes.
@@ -105,7 +105,7 @@ npm install -g @pnp/cli-microsoft365
105
105
  ```
106
106
 
107
107
  <details>
108
- <summary>Install beta version β</summary>
108
+ <summary>Install beta version β</summary>
109
109
 
110
110
  ```
111
111
  npm install -g @pnp/cli-microsoft365@next
@@ -140,7 +140,7 @@ npm install -g @pnp/cli-microsoft365
140
140
 
141
141
  ## Usage
142
142
 
143
- Use the `login` command to start the Device Code login flow to authenticate with your Microsoft 365 tenant.
143
+ Use the `login` command to start the Device Code login flow to authenticate with your Microsoft 365 tenant.
144
144
 
145
145
  ```sh
146
146
  m365 login
@@ -17,6 +17,7 @@ var _SpoFileListCommand_instances, _SpoFileListCommand_initTelemetry, _SpoFileLi
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const formatting_1 = require("../../../../utils/formatting");
20
+ const urlUtil_1 = require("../../../../utils/urlUtil");
20
21
  const validation_1 = require("../../../../utils/validation");
21
22
  const SpoCommand_1 = require("../../../base/SpoCommand");
22
23
  const commands_1 = require("../../commands");
@@ -37,53 +38,123 @@ class SpoFileListCommand extends SpoCommand_1.default {
37
38
  commandAction(logger, args) {
38
39
  return __awaiter(this, void 0, void 0, function* () {
39
40
  if (this.verbose) {
40
- logger.logToStderr(`Retrieving all files in folder ${args.options.folder} at site ${args.options.webUrl}...`);
41
+ logger.logToStderr(`Retrieving all files in folder '${args.options.folder}' at site '${args.options.webUrl}'${args.options.recursive ? ' (recursive)' : ''}...`);
41
42
  }
42
43
  try {
43
- const files = yield this.getFiles(args.options.folder, args);
44
- logger.log(files.value);
44
+ const fieldProperties = this.formatSelectProperties(args.options.fields, args.options.output);
45
+ const allFiles = [];
46
+ const allFolders = args.options.recursive
47
+ ? [...yield this.getFolders(args.options.folder, args, logger), args.options.folder]
48
+ : [args.options.folder];
49
+ for (const folder of allFolders) {
50
+ const files = yield this.getFiles(folder, fieldProperties, args, logger);
51
+ files.forEach((file) => allFiles.push(file));
52
+ }
53
+ // Clean ListItemAllFields.ID property from the output if included
54
+ // Reason: It causes a casing conflict with 'Id' when parsing JSON in PowerShell
55
+ if (fieldProperties.selectProperties.some(p => p.toLowerCase().indexOf('listitemallfields') > -1)) {
56
+ allFiles.filter(file => { var _a; return ((_a = file.ListItemAllFields) === null || _a === void 0 ? void 0 : _a.ID) !== undefined; }).forEach(file => delete file.ListItemAllFields['ID']);
57
+ }
58
+ logger.log(allFiles);
45
59
  }
46
60
  catch (err) {
47
61
  this.handleRejectedODataJsonPromise(err);
48
62
  }
49
63
  });
50
64
  }
51
- // Gets files from a folder recursively.
52
- getFiles(folderUrl, args, files = { value: [] }) {
53
- // If --recursive option is specified, retrieve both Files and Folder details, otherwise only Files.
54
- const expandParameters = args.options.recursive ? 'Files,Folders' : 'Files';
55
- let requestUrl = `${args.options.webUrl}/_api/web/GetFolderByServerRelativeUrl('${formatting_1.formatting.encodeQueryParameter(folderUrl)}')?$expand=${expandParameters}`;
56
- if (args.options.output !== 'json') {
57
- requestUrl += '&$select=Files/UniqueId,Files/Name,Files/ServerRelativeUrl';
58
- }
59
- const requestOptions = {
60
- url: requestUrl,
61
- method: 'GET',
62
- headers: {
63
- 'accept': 'application/json;odata=nometadata'
64
- },
65
- responseType: 'json'
66
- };
67
- return request_1.default
68
- .get(requestOptions)
69
- .then((filesAndFoldersResult) => {
70
- filesAndFoldersResult.Files.forEach((file) => files.value.push(file));
71
- // If the request is --recursive, call this method for other folders.
72
- if (args.options.recursive &&
73
- filesAndFoldersResult.Folders !== undefined &&
74
- filesAndFoldersResult.Folders.length !== 0) {
75
- return Promise.all(filesAndFoldersResult.Folders.map((folder) => this.getFiles(folder.ServerRelativeUrl, args, files)));
65
+ getFiles(folderUrl, fieldProperties, args, logger, skip = 0) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ if (this.verbose) {
68
+ const page = Math.ceil(skip / SpoFileListCommand.pageSize) + 1;
69
+ logger.logToStderr(`Retrieving files in folder '${folderUrl}'${page > 1 ? ', page ' + page : ''}...`);
70
+ }
71
+ const allFiles = [];
72
+ const serverRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, folderUrl);
73
+ const requestUrl = `${args.options.webUrl}/_api/web/GetFolderByServerRelativeUrl(@url)/Files?@url='${formatting_1.formatting.encodeQueryParameter(serverRelativeUrl)}'`;
74
+ const queryParams = [`$skip=${skip}`, `$top=${SpoFileListCommand.pageSize}`];
75
+ if (fieldProperties.expandProperties.length > 0) {
76
+ queryParams.push(`$expand=${fieldProperties.expandProperties.join(',')}`);
77
+ }
78
+ if (fieldProperties.selectProperties.length > 0) {
79
+ queryParams.push(`$select=${fieldProperties.selectProperties.join(',')}`);
76
80
  }
77
- else {
78
- return;
81
+ if (args.options.filter) {
82
+ queryParams.push(`$filter=${args.options.filter}`);
79
83
  }
80
- }).then(() => files);
84
+ const requestOptions = {
85
+ url: `${requestUrl}&${queryParams.join('&')}`,
86
+ method: 'GET',
87
+ headers: {
88
+ 'accept': 'application/json;odata=nometadata'
89
+ },
90
+ responseType: 'json'
91
+ };
92
+ const response = yield request_1.default.get(requestOptions);
93
+ response.value.forEach(file => allFiles.push(file));
94
+ if (response.value.length === SpoFileListCommand.pageSize) {
95
+ const files = yield this.getFiles(folderUrl, fieldProperties, args, logger, skip + SpoFileListCommand.pageSize);
96
+ files.forEach(file => allFiles.push(file));
97
+ }
98
+ return allFiles;
99
+ });
100
+ }
101
+ getFolders(folderUrl, args, logger, skip = 0) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ if (this.verbose) {
104
+ const page = Math.ceil(skip / SpoFileListCommand.pageSize) + 1;
105
+ logger.logToStderr(`Retrieving folders in folder '${folderUrl}'${page > 1 ? ', page ' + page : ''}...`);
106
+ }
107
+ const allFolders = [];
108
+ const serverRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, folderUrl);
109
+ const requestUrl = `${args.options.webUrl}/_api/web/GetFolderByServerRelativeUrl(@url)/Folders?@url='${formatting_1.formatting.encodeQueryParameter(serverRelativeUrl)}'`;
110
+ const requestOptions = {
111
+ url: `${requestUrl}&$skip=${skip}&$top=${SpoFileListCommand.pageSize}&$select=ServerRelativeUrl`,
112
+ method: 'GET',
113
+ headers: {
114
+ 'accept': 'application/json;odata=nometadata'
115
+ },
116
+ responseType: 'json'
117
+ };
118
+ const response = yield request_1.default.get(requestOptions);
119
+ for (const folder of response.value) {
120
+ allFolders.push(folder.ServerRelativeUrl);
121
+ const subfolders = yield this.getFolders(folder.ServerRelativeUrl, args, logger);
122
+ subfolders.forEach(folder => allFolders.push(folder));
123
+ }
124
+ if (response.value.length === SpoFileListCommand.pageSize) {
125
+ const folders = yield this.getFolders(folderUrl, args, logger, skip + SpoFileListCommand.pageSize);
126
+ folders.forEach(folder => allFolders.push(folder));
127
+ }
128
+ return allFolders;
129
+ });
130
+ }
131
+ formatSelectProperties(fields, output) {
132
+ let selectProperties = [];
133
+ const expandProperties = [];
134
+ if (output === 'text' && !fields) {
135
+ selectProperties = ['UniqueId', 'Name', 'ServerRelativeUrl'];
136
+ }
137
+ if (fields) {
138
+ fields.split(',').forEach((field) => {
139
+ const subparts = field.trim().split('/');
140
+ if (subparts.length > 1) {
141
+ expandProperties.push(subparts[0]);
142
+ }
143
+ selectProperties.push(field.trim());
144
+ });
145
+ }
146
+ return {
147
+ selectProperties: [...new Set(selectProperties)],
148
+ expandProperties: [...new Set(expandProperties)]
149
+ };
81
150
  }
82
151
  }
83
152
  _SpoFileListCommand_instances = new WeakSet(), _SpoFileListCommand_initTelemetry = function _SpoFileListCommand_initTelemetry() {
84
153
  this.telemetry.push((args) => {
85
154
  Object.assign(this.telemetryProperties, {
86
- recursive: args.options.recursive
155
+ recursive: args.options.recursive,
156
+ fields: typeof args.options.fields !== 'undefined',
157
+ filter: typeof args.options.filter !== 'undefined'
87
158
  });
88
159
  });
89
160
  }, _SpoFileListCommand_initOptions = function _SpoFileListCommand_initOptions() {
@@ -91,11 +162,16 @@ _SpoFileListCommand_instances = new WeakSet(), _SpoFileListCommand_initTelemetry
91
162
  option: '-u, --webUrl <webUrl>'
92
163
  }, {
93
164
  option: '-f, --folder <folder>'
165
+ }, {
166
+ option: '--fields [fields]'
167
+ }, {
168
+ option: '--filter [filter]'
94
169
  }, {
95
170
  option: '-r, --recursive'
96
171
  });
97
172
  }, _SpoFileListCommand_initValidators = function _SpoFileListCommand_initValidators() {
98
173
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () { return validation_1.validation.isValidSharePointUrl(args.options.webUrl); }));
99
174
  };
175
+ SpoFileListCommand.pageSize = 5000;
100
176
  module.exports = new SpoFileListCommand();
101
177
  //# sourceMappingURL=file-list.js.map
@@ -15,8 +15,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _SpoFolderListCommand_instances, _SpoFolderListCommand_initTelemetry, _SpoFolderListCommand_initOptions, _SpoFolderListCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const request_1 = require("../../../../request");
18
19
  const formatting_1 = require("../../../../utils/formatting");
19
- const odata_1 = require("../../../../utils/odata");
20
20
  const urlUtil_1 = require("../../../../utils/urlUtil");
21
21
  const validation_1 = require("../../../../utils/validation");
22
22
  const SpoCommand_1 = require("../../../base/SpoCommand");
@@ -41,37 +41,89 @@ class SpoFolderListCommand extends SpoCommand_1.default {
41
41
  commandAction(logger, args) {
42
42
  return __awaiter(this, void 0, void 0, function* () {
43
43
  if (this.verbose) {
44
- logger.logToStderr(`Retrieving folders from site ${args.options.webUrl} parent folder ${args.options.parentFolderUrl} ${args.options.recursive ? '(recursive)' : ''}...`);
44
+ logger.logToStderr(`Retrieving all folders in folder '${args.options.parentFolderUrl}' at site '${args.options.webUrl}'${args.options.recursive ? ' (recursive)' : ''}...`);
45
45
  }
46
46
  try {
47
- const resp = yield this.getFolderList(args.options.webUrl, args.options.parentFolderUrl, args.options.recursive);
48
- logger.log(resp);
47
+ const fieldProperties = this.formatSelectProperties(args.options.fields);
48
+ const allFiles = yield this.getFolders(args.options.parentFolderUrl, fieldProperties, args, logger);
49
+ // Clean ListItemAllFields.ID property from the output if included
50
+ // Reason: It causes a casing conflict with 'Id' when parsing JSON in PowerShell
51
+ if (fieldProperties.selectProperties.some(p => p.toLowerCase().indexOf('listitemallfields') > -1)) {
52
+ allFiles.filter(folder => { var _a; return ((_a = folder.ListItemAllFields) === null || _a === void 0 ? void 0 : _a.ID) !== undefined; }).forEach(folder => delete folder.ListItemAllFields['ID']);
53
+ }
54
+ logger.log(allFiles);
49
55
  }
50
56
  catch (err) {
51
57
  this.handleRejectedODataJsonPromise(err);
52
58
  }
53
59
  });
54
60
  }
55
- getFolderList(webUrl, parentFolderUrl, recursive, folders = []) {
61
+ getFolders(parentFolderUrl, fieldProperties, args, logger, skip = 0) {
56
62
  return __awaiter(this, void 0, void 0, function* () {
57
- const serverRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(webUrl, parentFolderUrl);
58
- const resp = yield odata_1.odata.getAllItems(`${webUrl}/_api/web/GetFolderByServerRelativeUrl('${formatting_1.formatting.encodeQueryParameter(serverRelativeUrl)}')/folders`);
59
- if (resp.length > 0) {
60
- for (const folder of resp) {
61
- folders.push(folder);
62
- if (recursive) {
63
- yield this.getFolderList(webUrl, folder.ServerRelativeUrl, recursive, folders);
64
- }
63
+ if (this.verbose) {
64
+ const page = Math.ceil(skip / SpoFolderListCommand.pageSize) + 1;
65
+ logger.logToStderr(`Retrieving folders in folder '${parentFolderUrl}'${page > 1 ? ', page ' + page : ''}...`);
66
+ }
67
+ const allFolders = [];
68
+ const serverRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, parentFolderUrl);
69
+ const requestUrl = `${args.options.webUrl}/_api/web/GetFolderByServerRelativeUrl(@url)/Folders?@url='${formatting_1.formatting.encodeQueryParameter(serverRelativeUrl)}'`;
70
+ const queryParams = [`$skip=${skip}`, `$top=${SpoFolderListCommand.pageSize}`];
71
+ if (fieldProperties.expandProperties.length > 0) {
72
+ queryParams.push(`$expand=${fieldProperties.expandProperties.join(',')}`);
73
+ }
74
+ if (fieldProperties.selectProperties.length > 0) {
75
+ queryParams.push(`$select=${fieldProperties.selectProperties.join(',')}`);
76
+ }
77
+ if (args.options.filter) {
78
+ queryParams.push(`$filter=${args.options.filter}`);
79
+ }
80
+ const requestOptions = {
81
+ url: `${requestUrl}&${queryParams.join('&')}`,
82
+ method: 'GET',
83
+ headers: {
84
+ 'accept': 'application/json;odata=nometadata'
85
+ },
86
+ responseType: 'json'
87
+ };
88
+ const response = yield request_1.default.get(requestOptions);
89
+ for (const folder of response.value) {
90
+ allFolders.push(folder);
91
+ if (args.options.recursive) {
92
+ const subFolders = yield this.getFolders(folder.ServerRelativeUrl, fieldProperties, args, logger);
93
+ subFolders.forEach(subFolder => allFolders.push(subFolder));
65
94
  }
66
95
  }
67
- return folders;
96
+ if (response.value.length === SpoFolderListCommand.pageSize) {
97
+ const folders = yield this.getFolders(parentFolderUrl, fieldProperties, args, logger, skip + SpoFolderListCommand.pageSize);
98
+ folders.forEach(folder => allFolders.push(folder));
99
+ }
100
+ return allFolders;
68
101
  });
69
102
  }
103
+ formatSelectProperties(fields) {
104
+ const selectProperties = [];
105
+ const expandProperties = [];
106
+ if (fields) {
107
+ fields.split(',').forEach((field) => {
108
+ const subparts = field.trim().split('/');
109
+ if (subparts.length > 1) {
110
+ expandProperties.push(subparts[0]);
111
+ }
112
+ selectProperties.push(field.trim());
113
+ });
114
+ }
115
+ return {
116
+ selectProperties: [...new Set(selectProperties)],
117
+ expandProperties: [...new Set(expandProperties)]
118
+ };
119
+ }
70
120
  }
71
121
  _SpoFolderListCommand_instances = new WeakSet(), _SpoFolderListCommand_initTelemetry = function _SpoFolderListCommand_initTelemetry() {
72
122
  this.telemetry.push((args) => {
73
123
  Object.assign(this.telemetryProperties, {
74
- recursive: !!args.options.recursive
124
+ recursive: !!args.options.recursive,
125
+ fields: typeof args.options.fields !== 'undefined',
126
+ filter: typeof args.options.filter !== 'undefined'
75
127
  });
76
128
  });
77
129
  }, _SpoFolderListCommand_initOptions = function _SpoFolderListCommand_initOptions() {
@@ -80,10 +132,15 @@ _SpoFolderListCommand_instances = new WeakSet(), _SpoFolderListCommand_initTelem
80
132
  }, {
81
133
  option: '-p, --parentFolderUrl <parentFolderUrl>'
82
134
  }, {
83
- option: '--recursive [recursive]'
135
+ option: '-f, --fields [fields]'
136
+ }, {
137
+ option: '--filter [filter]'
138
+ }, {
139
+ option: '-r, --recursive [recursive]'
84
140
  });
85
141
  }, _SpoFolderListCommand_initValidators = function _SpoFolderListCommand_initValidators() {
86
142
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () { return validation_1.validation.isValidSharePointUrl(args.options.webUrl); }));
87
143
  };
144
+ SpoFolderListCommand.pageSize = 5000;
88
145
  module.exports = new SpoFolderListCommand();
89
146
  //# sourceMappingURL=folder-list.js.map
@@ -16,21 +16,106 @@ m365 spo file list [options]
16
16
  `-f, --folder <folder>`
17
17
  : The server- or site-relative URL of the folder from which to retrieve files
18
18
 
19
+ `--fields [fields]`
20
+ : Comma-separated list of fields to retrieve. Will retrieve all fields if not specified.
21
+
22
+ `--filter [filter]`
23
+ : OData filter to use to query the list of items with
24
+
19
25
  `-r, --recursive`
20
26
  : Set to retrieve files from subfolders
21
27
 
22
28
  --8<-- "docs/cmd/_global.md"
23
29
 
30
+ ## Remarks
31
+
32
+ When the `fields` option includes values with a `/`, for example: `ListItemAllFields/Id`, an additional `$expand` query parameter will be included on `ListItemAllFields`.
33
+
24
34
  ## Examples
25
35
 
26
- Return all files from folder _Shared Documents_ located in site _https://contoso.sharepoint.com/sites/project-x_
36
+ Return all files from a folder
27
37
 
28
38
  ```sh
29
39
  m365 spo file list --webUrl https://contoso.sharepoint.com/sites/project-x --folder 'Shared Documents'
30
40
  ```
31
41
 
32
- Return all files from the folder _Shared Documents_ and all the sub-folders of _Shared Documents_ located in site _https://contoso.sharepoint.com/sites/project-x_
42
+ Return all files from a folder and all the sub-folders
33
43
 
34
44
  ```sh
35
45
  m365 spo file list --webUrl https://contoso.sharepoint.com/sites/project-x --folder 'Shared Documents' --recursive
36
46
  ```
47
+
48
+ Return the files from a folder with specific fields which will be expanded
49
+
50
+ ```sh
51
+ m365 spo file list --webUrl https://contoso.sharepoint.com/sites/project-x --folder 'Shared Documents' --fields "Title,Length"
52
+ ```
53
+
54
+ Return the files from a folder that meet the criteria of the filter with specific fields which will be expanded
55
+
56
+ ```sh
57
+ m365 spo file list --webUrl https://contoso.sharepoint.com/sites/project-x --folder 'Shared Documents' --fields ListItemAllFields/Id --filter "Name eq 'document.docx'"
58
+ ```
59
+
60
+ ## Response
61
+
62
+ === "JSON"
63
+
64
+ ```json
65
+ [
66
+ {
67
+ "CheckInComment": "",
68
+ "CheckOutType": 2,
69
+ "ContentTag": "{F09C4EFE-B8C0-4E89-A166-03418661B89B},9,12",
70
+ "CustomizedPageStatus": 0,
71
+ "ETag": "\"{F09C4EFE-B8C0-4E89-A166-03418661B89B},9\"",
72
+ "Exists": true,
73
+ "IrmEnabled": false,
74
+ "Length": 331673,
75
+ "Level": 1,
76
+ "LinkingUri": "https://contoso.sharepoint.com/sites/project-x/Shared Documents/Document.docx?d=wf09c4efeb8c04e89a16603418661b89b",
77
+ "LinkingUrl": "https://contoso.sharepoint.com/sites/project-x/Shared Documents/Document.docx?d=wf09c4efeb8c04e89a16603418661b89b",
78
+ "MajorVersion": 3,
79
+ "MinorVersion": 0,
80
+ "Name": "Document.docx",
81
+ "ServerRelativeUrl": "/sites/project-x/Shared Documents/Document.docx",
82
+ "TimeCreated": "2018-02-05T08:42:36Z",
83
+ "TimeLastModified": "2018-02-05T08:44:03Z",
84
+ "Title": "",
85
+ "UIVersion": 1536,
86
+ "UIVersionLabel": "3.0",
87
+ "UniqueId": "f09c4efe-b8c0-4e89-a166-03418661b89b"
88
+ }
89
+ ]
90
+ ```
91
+
92
+ === "Text"
93
+
94
+ ```text
95
+ Name ServerRelativeUrl UniqueId
96
+ --------------------------------- ----------------------------------------------- ------------------------------------
97
+ Document.docx /sites/project-x/Shared Documents/Document.docx 5eb97525-2167-4d26-94b8-092a97d65716
98
+ ```
99
+
100
+ === "CSV"
101
+
102
+ ```csv
103
+ Name,ServerRelativeUrl,UniqueId
104
+ Document.docx,/sites/project-x/Shared Documents/Document.docx,5eb97525-2167-4d26-94b8-092a97d65716
105
+ ```
106
+
107
+ === "Markdown"
108
+
109
+ ```md
110
+ # spo file list --webUrl "https://contoso.sharepoint.com" --folder "Shared Documents"
111
+
112
+ Date: 23/3/2023
113
+
114
+ ## Document.docx (5eb97525-2167-4d26-94b8-092a97d65716)
115
+
116
+ Property | Value
117
+ ---------|-------
118
+ Name | Document.docx
119
+ ServerRelativeUrl | /sites/project-x/Shared Documents/Document.docx
120
+ UniqueId | 5eb97525-2167-4d26-94b8-092a97d65716
121
+ ```
@@ -16,6 +16,12 @@ m365 spo folder list [options]
16
16
  `-p, --parentFolderUrl <parentFolderUrl>`
17
17
  : Site-relative URL of the parent folder
18
18
 
19
+ `-f, --fields [fields]`
20
+ : Comma-separated list of fields to retrieve. Will retrieve all fields if not specified and json output is requested.
21
+
22
+ `--filter [filter]`
23
+ : OData filter to use to query the list of folders with.
24
+
19
25
  `-r, --recursive`
20
26
  : Set to retrieve nested folders
21
27
 
@@ -23,7 +29,7 @@ m365 spo folder list [options]
23
29
 
24
30
  ## Examples
25
31
 
26
- Gets list of folders under a parent folder with site-relative url _/Shared Documents_ located in site _https://contoso.sharepoint.com/sites/project-x_
32
+ Gets list of folders under a parent folder
27
33
 
28
34
  ```sh
29
35
  m365 spo folder list --webUrl https://contoso.sharepoint.com/sites/project-x --parentFolderUrl '/Shared Documents'
@@ -35,6 +41,12 @@ Gets recursive list of folders under a specific folder on a specific site
35
41
  m365 spo folder list --webUrl https://contoso.sharepoint.com/sites/project-x --parentFolderUrl '/Shared Documents' --recursive
36
42
  ```
37
43
 
44
+ Return a filtered list of folders and only return the list item ID
45
+
46
+ ```sh
47
+ m365 spo folder list --webUrl https://contoso.sharepoint.com/sites/project-x --parentFolderUrl '/Shared Documents' --fields ListItemAllFields/Id --filter "startswith(Name,'Folder')"
48
+ ```
49
+
38
50
  ## Response
39
51
 
40
52
  === "JSON"
@@ -70,3 +82,26 @@ m365 spo folder list --webUrl https://contoso.sharepoint.com/sites/project-x --p
70
82
  Name,ServerRelativeUrl
71
83
  Folder A,/Shared Documents/Folder A
72
84
  ```
85
+
86
+ === "Markdown"
87
+
88
+ ```md
89
+ # spo folder list --webUrl "https://contoso.sharepoint.com" --parentFolderUrl "/Shared Documents"
90
+
91
+ Date: 29/3/2023
92
+
93
+ ## Folder A (20523746-971b-4488-aa6d-b45d645f61c5)
94
+
95
+ Property | Value
96
+ ---------|-------
97
+ Exists | true
98
+ IsWOPIEnabled | false
99
+ ItemCount | 9
100
+ Name | Folder A
101
+ ProgID | null
102
+ ServerRelativeUrl | /Shared Documents/Folder A
103
+ TimeCreated | 2022-04-26T12:30:56Z
104
+ TimeLastModified | 2022-04-26T12:50:14Z
105
+ UniqueId | 20523746-971b-4488-aa6d-b45d645f61c5
106
+ WelcomePage |
107
+ ```
@@ -46,3 +46,15 @@ m365 spo get --output json
46
46
  SpoUrl
47
47
  https://contoso.sharepoint.com
48
48
  ```
49
+
50
+ === "Markdown"
51
+
52
+ ```md
53
+ # spo get
54
+
55
+ Date: 4/10/2023
56
+
57
+ Property | Value
58
+ ---------|-------
59
+ SpoUrl | https://contoso.sharepoint.com
60
+ ```
@@ -126,9 +126,9 @@ m365 spo search --queryText "*" --sourceId "6e71030e-5e16-4406-9bff-9c1829843083
126
126
  === "Text"
127
127
 
128
128
  ```text
129
- Title OriginalPath
130
- ----------------------- --------------------------------------------------------------------------------------------------------
131
- Document https://contoso.sharepoint.com/Shared Documents/Document.docx
129
+ Title OriginalPath
130
+ -------- -------------------------------------------------------------
131
+ Document https://contoso.sharepoint.com/Shared Documents/Document.docx
132
132
  ```
133
133
 
134
134
  === "CSV"
@@ -138,3 +138,16 @@ m365 spo search --queryText "*" --sourceId "6e71030e-5e16-4406-9bff-9c1829843083
138
138
  Document,https://contoso.sharepoint.com/Shared Documents/Document.docx
139
139
  ```
140
140
 
141
+ === "Markdown"
142
+
143
+ ```md
144
+ # spo search --queryText "Title:Marketing*" --rowLimit "50" --trimDuplicates "true"
145
+
146
+ Date: 4/10/2023
147
+
148
+ ## Marketing lunch
149
+ Property | Value
150
+ ---------|-------
151
+ Title | Marketing lunch
152
+ OriginalPath | https://contoso.sharepoint.com/sites/contosoportal/SitePages/Marketing-Lunch.aspx
153
+ ```
@@ -86,7 +86,7 @@ m365 spo user ensure --webUrl https://contoso.sharepoint.com/sites/project --use
86
86
  === "Markdown"
87
87
 
88
88
  ```md
89
- # spo user ensure --webUrl "https://mathijsdev2.sharepoint.com" --userName "john@contoso.com"
89
+ # spo user ensure --webUrl "https://contoso.sharepoint.com" --userName "john@contoso.com"
90
90
 
91
91
  Date: 18/02/2023
92
92
 
@@ -104,6 +104,5 @@ m365 spo user ensure --webUrl https://contoso.sharepoint.com/sites/project --use
104
104
  IsEmailAuthenticationGuestUser | false
105
105
  IsShareByEmailGuestUser | false
106
106
  IsSiteAdmin | false
107
- UserId | {"NameId":"100320009d80e5de","NameIdIssuer":"urn:federation:microsoftonline"}
108
107
  UserPrincipalName | john@contoso.com
109
108
  ```
@@ -91,3 +91,27 @@ m365 spo user get --webUrl https://contoso.sharepoint.com/sites/project-x --logi
91
91
  Id,IsHiddenInUI,LoginName,Title,PrincipalType,Email,Expiration,IsEmailAuthenticationGuestUser,IsShareByEmailGuestUser,IsSiteAdmin,UserId,UserPrincipalName
92
92
  10,,i:0#.f|membership|johndoe@contoso.onmicrosoft.com,John Doe,1,johndoe@contoso.onmicrosoft.com,,,,,"{""NameId"":""100320022ec308a7"",""NameIdIssuer"":""urn:federation:microsoftonline""}",johndoe@contoso.onmicrosoft.com
93
93
  ```
94
+
95
+ === "Markdown"
96
+
97
+ ```md
98
+ # spo user get --webUrl "https://contoso.sharepoint.com" --loginName "i:0#.f|membership|john.doe@contoso.onmicrosoft.com"
99
+
100
+ Date: 4/10/2023
101
+
102
+ ## John Doe (9)
103
+
104
+ Property | Value
105
+ ---------|-------
106
+ Id | 10
107
+ IsHiddenInUI | false
108
+ LoginName | i:0#.f\|membership\|john.doe@contoso.onmicrosoft.com
109
+ Title | Reshmee Auckloo
110
+ PrincipalType | 1
111
+ Email | john.doe@contoso.onmicrosoft.com
112
+ Expiration |
113
+ IsEmailAuthenticationGuestUser | false
114
+ IsShareByEmailGuestUser | false
115
+ IsSiteAdmin | false
116
+ UserPrincipalName | john.doe@contoso.onmicrosoft.com
117
+ ```
@@ -52,9 +52,9 @@ m365 spo user list --webUrl https://contoso.sharepoint.com/sites/project-x
52
52
  === "Text"
53
53
 
54
54
  ```text
55
- Id Title LoginName
56
- ---------- ------------------------------ --------------------------------------------------------------------------
57
- 10 John Doe i:0#.f|membership|johndoe@contoso.onmicrosoft.com
55
+ Id Title LoginName
56
+ --- -------- -------------------------------------------------
57
+ 10 John Doe i:0#.f|membership|johndoe@contoso.onmicrosoft.com
58
58
  ```
59
59
 
60
60
  === "CSV"
@@ -63,3 +63,27 @@ m365 spo user list --webUrl https://contoso.sharepoint.com/sites/project-x
63
63
  Id,Title,LoginName
64
64
  10,John Doe,i:0#.f|membership|johndoe@contoso.onmicrosoft.com
65
65
  ```
66
+
67
+ === "Markdown"
68
+
69
+ ```md
70
+ # spo user list --webUrl "https://contoso.sharepoint.com/sites/project-x"
71
+
72
+ Date: 4/10/2023
73
+
74
+ ## John Doe (10)
75
+
76
+ Property | Value
77
+ ---------|-------
78
+ Id | 7
79
+ IsHiddenInUI | false
80
+ LoginName | c:0o.c\|membership\|johndoe@contoso.onmicrosoft.com
81
+ Title | John Doe
82
+ PrincipalType | 1
83
+ Email | johndoe@contoso.onmicrosoft.com
84
+ Expiration |
85
+ IsEmailAuthenticationGuestUser | false
86
+ IsShareByEmailGuestUser | false
87
+ IsSiteAdmin | false
88
+ UserPrincipalName | johndoe@contoso.onmicrosoft.com
89
+ ```
@@ -611,4 +611,25 @@ m365 spo userprofile get --userName 'john.doe@mytenant.onmicrosoft.com'
611
611
  i:0#.f|membership|johndoe@contoso.onmicrosoft.com,[],John Doe,johndoe@contoso.onmicrosoft.com,[],"[""i:0#.f|membership|johndoe@contoso.onmicrosoft.com""]",,,[],https://contoso-my.sharepoint.com:443/,https://contoso-my.sharepoint.com/personal/john_contoso_onmicrosoft_com/,,,"[{""Key"":""UserProfile_GUID"",""Value"":""0b4f6da0-97db-456e-993d-80e035057600"",""ValueType"":""Edm.String""},{""Key"":""SID"",""Value"":""i:0h.f|membership|100320022ec308a7@live.com"",""ValueType"":""Edm.String""},{""Key"":""ADGuid"",""Value"":""System.Byte[]"",""ValueType"":""Edm.String""},{""Key"":""AccountName"",""Value"":""i:0#.f|membership|johndoe@contoso.onmicrosoft.com"",""ValueType"":""Edm.String""},{""Key"":""FirstName"",""Value"":""John"",""ValueType"":""Edm.String""},{""Key"":""SPS-PhoneticFirstName"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""LastName"",""Value"":""Doe"",""ValueType"":""Edm.String""},{""Key"":""SPS-PhoneticLastName"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""PreferredName"",""Value"":""John Doe"",""ValueType"":""Edm.String""},{""Key"":""SPS-PhoneticDisplayName"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""WorkPhone"",""Value"":""494594133"",""ValueType"":""Edm.String""},{""Key"":""Department"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""Title"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-Department"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""Manager"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""AboutMe"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""PersonalSpace"",""Value"":""/personal/john_contoso_onmicrosoft_com/"",""ValueType"":""Edm.String""},{""Key"":""PictureURL"",""Value"":""https://contoso-my.sharepoint.com:443/User%20Photos/Profile%20Pictures/78ccf530-bbf0-47e4-aae6-da5f8c6fb142_MThumb.jpg"",""ValueType"":""Edm.String""},{""Key"":""UserName"",""Value"":""johndoe@contoso.onmicrosoft.com"",""ValueType"":""Edm.String""},{""Key"":""QuickLinks"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""WebSite"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""PublicSiteRedirect"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-JobTitle"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-DataSource"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-MemberOf"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-Dotted-line"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-Peers"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-Responsibility"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-SipAddress"",""Value"":""johndoe@contoso.onmicrosoft.com"",""ValueType"":""Edm.String""},{""Key"":""SPS-MySiteUpgrade"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-DontSuggestList"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-ProxyAddresses"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-HireDate"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-DisplayOrder"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-ClaimID"",""Value"":""johndoe@contoso.onmicrosoft.com"",""ValueType"":""Edm.String""},{""Key"":""SPS-ClaimProviderID"",""Value"":""membership"",""ValueType"":""Edm.String""},{""Key"":""SPS-LastColleagueAdded"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-OWAUrl"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-ResourceSID"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-ResourceAccountName"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-MasterAccountName"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-UserPrincipalName"",""Value"":""johndoe@contoso.onmicrosoft.com"",""ValueType"":""Edm.String""},{""Key"":""SPS-O15FirstRunExperience"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-PersonalSiteInstantiationState"",""Value"":""2"",""ValueType"":""Edm.String""},{""Key"":""SPS-DistinguishedName"",""Value"":""CN=78ccf530-bbf0-47e4-aae6-da5f8c6fb142,OU=0cac6cda-2e04-4a3d-9c16-9c91470d7022,OU=Tenants,OU=MSOnline,DC=SPODS188311,DC=msft,DC=net"",""ValueType"":""Edm.String""},{""Key"":""SPS-SourceObjectDN"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-LastKeywordAdded"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-ClaimProviderType"",""Value"":""Forms"",""ValueType"":""Edm.String""},{""Key"":""SPS-SavedAccountName"",""Value"":""i:0#.f|membership|johndoe@contoso.onmicrosoft.com"",""ValueType"":""Edm.String""},{""Key"":""SPS-SavedSID"",""Value"":""System.Byte[]"",""ValueType"":""Edm.String""},{""Key"":""SPS-ObjectExists"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-PersonalSiteCapabilities"",""Value"":""36"",""ValueType"":""Edm.String""},{""Key"":""SPS-PersonalSiteFirstCreationTime"",""Value"":""9/12/2022 6:19:29 PM"",""ValueType"":""Edm.String""},{""Key"":""SPS-PersonalSiteLastCreationTime"",""Value"":""9/12/2022 6:19:29 PM"",""ValueType"":""Edm.String""},{""Key"":""SPS-PersonalSiteNumberOfRetries"",""Value"":""1"",""ValueType"":""Edm.String""},{""Key"":""SPS-PersonalSiteFirstCreationError"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-FeedIdentifier"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""WorkEmail"",""Value"":""johndoe@contoso.onmicrosoft.com"",""ValueType"":""Edm.String""},{""Key"":""CellPhone"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""Fax"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""HomePhone"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""Office"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-Location"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""Assistant"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-PastProjects"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-Skills"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-School"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-Birthday"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-StatusNotes"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-Interests"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-HashTags"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-EmailOptin"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-PrivacyPeople"",""Value"":""True"",""ValueType"":""Edm.String""},{""Key"":""SPS-PrivacyActivity"",""Value"":""4095"",""ValueType"":""Edm.String""},{""Key"":""SPS-PictureTimestamp"",""Value"":""63799442436"",""ValueType"":""Edm.String""},{""Key"":""SPS-PicturePlaceholderState"",""Value"":""1"",""ValueType"":""Edm.String""},{""Key"":""SPS-PictureExchangeSyncState"",""Value"":""1"",""ValueType"":""Edm.String""},{""Key"":""SPS-MUILanguages"",""Value"":""en-US"",""ValueType"":""Edm.String""},{""Key"":""SPS-ContentLanguages"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-TimeZone"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-RegionalSettings-FollowWeb"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-Locale"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-CalendarType"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-AltCalendarType"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-AdjustHijriDays"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-ShowWeeks"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-WorkDays"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-WorkDayStartHour"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-WorkDayEndHour"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-Time24"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-FirstDayOfWeek"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-FirstWeekOfYear"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-RegionalSettings-Initialized"",""Value"":""True"",""ValueType"":""Edm.String""},{""Key"":""OfficeGraphEnabled"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-UserType"",""Value"":""0"",""ValueType"":""Edm.String""},{""Key"":""SPS-HideFromAddressLists"",""Value"":""False"",""ValueType"":""Edm.String""},{""Key"":""SPS-RecipientTypeDetails"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""DelveFlags"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""PulseMRUPeople"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""msOnline-ObjectId"",""Value"":""78ccf530-bbf0-47e4-aae6-da5f8c6fb142"",""ValueType"":""Edm.String""},{""Key"":""SPS-PointPublishingUrl"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-TenantInstanceId"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-SharePointHomeExperienceState"",""Value"":""17301504"",""ValueType"":""Edm.String""},{""Key"":""SPS-RefreshToken"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""SPS-MultiGeoFlags"",""Value"":"""",""ValueType"":""Edm.String""},{""Key"":""PreferredDataLocation"",""Value"":"""",""ValueType"":""Edm.String""}]",https://contoso-my.sharepoint.com:443/Person.aspx?accountname=i%3A0%23%2Ef%7Cmembership%7Cjohn%40contoso%2Eonmicrosoft%2Ecom
612
612
  ```
613
613
 
614
+ === "Markdown"
614
615
 
616
+ ```md
617
+ # spo userprofile get --userName "johndoe@mytenant.onmicrosoft.com"
618
+
619
+ Date: 4/10/2023
620
+
621
+ ## John Doe
622
+
623
+ Property | Value
624
+ ---------|-------
625
+ AccountName | i:0#.f\|membership\|johndoe@mytenant.onmicrosoft.com
626
+ DisplayName | John Doe
627
+ Email | johndoe@mytenant.onmicrosoft.com
628
+ IsFollowed | false
629
+ LatestPost | null
630
+ PersonalSiteHostUrl | https://johndoe-my.sharepoint.com:443/
631
+ PersonalUrl | https://johndoe-my.sharepoint.com/personal/johndoe\_johndoe\_onmicrosoft\_com/
632
+ PictureUrl | null
633
+ Title | null
634
+ UserUrl | https://johndoe-my.sharepoint.com:443/Person.aspx?accountname=i%3A0%23%2Ef%7Cmembership%7Cjohndoe%40johndoe%2Eonmicrosoft%2Ecom
635
+ ```
@@ -98,3 +98,27 @@ m365 spo web add --title Subsite --url subsite --webTemplate STS#0 --parentWebUr
98
98
  Configuration,Created,Description,Id,Language,LastItemModifiedDate,LastItemUserModifiedDate,ServerRelativeUrl,Title,WebTemplate,WebTemplateId
99
99
  0,2022-11-05T14:09:11,Subsite,0cbf2896-bac2-4244-b871-68b413ee7b2f,1033,2022-11-05T14:09:22Z,2022-11-05T14:09:22Z,/subsite,Subsite,STS,0
100
100
  ```
101
+
102
+ === "Markdown"
103
+
104
+ ```md
105
+ # spo web add --title "Subsite" --url "subsite" --webTemplate "STS#0" --parentWebUrl "https://contoso.sharepoint.com" --inheritNavigation "true"
106
+
107
+ Date: 4/10/2023
108
+
109
+ ## Subsite (261ab6d3-0064-47d8-9189-82e5745d7a7f)
110
+
111
+ Property | Value
112
+ ---------|-------
113
+ Configuration | 0
114
+ Created | 2023-04-10T06:38:24
115
+ Description |
116
+ Id | 261ab6d3-0064-47d8-9189-82e5745d7a7f
117
+ Language | 1033
118
+ LastItemModifiedDate | 2023-04-10T06:38:32Z
119
+ LastItemUserModifiedDate | 2023-04-10T06:38:32Z
120
+ ServerRelativeUrl | /subsite
121
+ Title | Subsite
122
+ WebTemplate | STS
123
+ WebTemplateId | 0
124
+ ```
@@ -51,3 +51,19 @@ m365 spo web clientsidewebpart list --webUrl https://contoso.sharepoint.com
51
51
  Id,Name,Title
52
52
  9cc0f495-db64-4d74-b06b-a3de16231fe1,9cc0f495-db64-4d74-b06b-a3de16231fe1,Dashboard for Viva Connections
53
53
  ```
54
+
55
+ === "Markdown"
56
+
57
+ ```md
58
+ # spo web clientsidewebpart list --webUrl "https://contoso.sharepoint.com"
59
+
60
+ Date: 4/10/2023
61
+
62
+ ## Dashboard for Viva Connections (9cc0f495-db64-4d74-b06b-a3de16231fe1)
63
+
64
+ Property | Value
65
+ ---------|-------
66
+ Id | 9cc0f495-db64-4d74-b06b-a3de16231fe1
67
+ Name | 9cc0f495-db64-4d74-b06b-a3de16231fe1
68
+ Title | Dashboard for Viva Connections
69
+ ```
@@ -168,6 +168,68 @@ m365 spo web get --url https://contoso.sharepoint.com/subsite --withPermissions
168
168
  1,,00000000-0000-0000-0000-000000000000,,0,2022-09-12T18:18:07.253,"{""StringValue"":""1;2;d8b65bb3-6ca1-4df2-a4be-0efe08af2580;638032554734300000;715586625""}",/_catalogs/masterpage/seattle.master,,00000000-0000-0000-0000-000000000000,,,0,1,0,0,0,,,d8b65bb3-6ca1-4df2-a4be-0efe08af2580,,,,,1,,1033,2022-11-05T14:06:21Z,2022-10-31T07:29:33Z,0,/_catalogs/masterpage/seattle.master,1,,,,,"{""DecodedUrl"":""https://contoso.sharepoint.com""}",1,1,0,/,,1,0,Communication site,,15,,https://contoso.sharepoint.com,SITEPAGEPUBLISHING,SitePages/Home.aspx
169
169
  ```
170
170
 
171
+ === "Markdown"
172
+
173
+ ```md
174
+ # spo web get --url "https://contoso.sharepoint.com/subsite"
175
+
176
+ Date: 4/10/2023
177
+
178
+ ## Subsite (c59dae7c-48bd-4241-96b7-b81d4bbc25cb)
179
+
180
+ Property | Value
181
+ ---------|-------
182
+ AllowRssFeeds | true
183
+ AlternateCssUrl |
184
+ AppInstanceId | 00000000-0000-0000-0000-000000000000
185
+ ClassicWelcomePage | null
186
+ Configuration | 0
187
+ Created | 2021-09-22T01:54:52.18
188
+ CustomMasterUrl | /subsite/\_catalogs/masterpage/seattle.master
189
+ Description |
190
+ DesignPackageId | 00000000-0000-0000-0000-000000000000
191
+ DocumentLibraryCalloutOfficeWebAppPreviewersDisabled | false
192
+ EnableMinimalDownload | false
193
+ FooterEmphasis | 0
194
+ FooterEnabled | false
195
+ FooterLayout | 0
196
+ HeaderEmphasis | 0
197
+ HeaderLayout | 2
198
+ HideTitleInHeader | false
199
+ HorizontalQuickLaunch | false
200
+ Id | c59dae7c-48bd-4241-96b7-b81d4bbc25cb
201
+ IsEduClass | false
202
+ IsEduClassProvisionChecked | false
203
+ IsEduClassProvisionPending | false
204
+ IsHomepageModernized | false
205
+ IsMultilingual | true
206
+ IsRevertHomepageLinkHidden | false
207
+ Language | 1033
208
+ LastItemModifiedDate | 2023-04-10T06:07:56Z
209
+ LastItemUserModifiedDate | 2023-03-05T08:33:24Z
210
+ LogoAlignment | 0
211
+ MasterUrl | /subsite/\_catalogs/masterpage/seattle.master
212
+ MegaMenuEnabled | false
213
+ NavAudienceTargetingEnabled | false
214
+ NoCrawl | false
215
+ ObjectCacheEnabled | false
216
+ OverwriteTranslationsOnChange | false
217
+ QuickLaunchEnabled | true
218
+ RecycleBinEnabled | true
219
+ SearchScope | 0
220
+ ServerRelativeUrl | /subsite
221
+ SiteLogoUrl | /subsite/\_api/GroupService/GetGroupImage?id='58c0c654-ce7d-444b-9f5f-bc246400f176'&hash=637696347741828775
222
+ SyndicationEnabled | true
223
+ TenantAdminMembersCanShare | 0
224
+ Title | Subsite
225
+ TreeViewEnabled | false
226
+ UIVersion | 15
227
+ UIVersionConfigurationEnabled | false
228
+ Url | https://contoso.sharepoint.com/subsite
229
+ WebTemplate | GROUP
230
+ WelcomePage | SitePages/Home.aspx
231
+ ```
232
+
171
233
  ### `withGroups`, `withPermissions` response
172
234
 
173
235
  When we make use of the option `withGroups` or `withPermissions` the response will differ.
@@ -414,3 +476,65 @@ When we make use of the option `withGroups` or `withPermissions` the response wi
414
476
  AssociatedMemberGroup,AssociatedOwnerGroup,AssociatedVisitorGroup,AllowRssFeeds,AlternateCssUrl,AppInstanceId,ClassicWelcomePage,Configuration,Created,CurrentChangeToken,CustomMasterUrl,Description,DesignPackageId,DocumentLibraryCalloutOfficeWebAppPreviewersDisabled,EnableMinimalDownload,FooterEmphasis,FooterEnabled,FooterLayout,HeaderEmphasis,HeaderLayout,HideTitleInHeader,HorizontalQuickLaunch,Id,IsEduClass,IsEduClassProvisionChecked,IsEduClassProvisionPending,IsHomepageModernized,IsMultilingual,IsRevertHomepageLinkHidden,Language,LastItemModifiedDate,LastItemUserModifiedDate,LogoAlignment,MasterUrl,MegaMenuEnabled,NavAudienceTargetingEnabled,NoCrawl,ObjectCacheEnabled,OverwriteTranslationsOnChange,ResourcePath,QuickLaunchEnabled,RecycleBinEnabled,SearchScope,ServerRelativeUrl,SiteLogoUrl,SyndicationEnabled,TenantAdminMembersCanShare,Title,TreeViewEnabled,UIVersion,UIVersionConfigurationEnabled,Url,WebTemplate,WelcomePage,RoleAssignments
415
477
  "{""Id"":5,""IsHiddenInUI"":false,""LoginName"":""Communication site Members"",""Title"":""Communication site Members"",""PrincipalType"":8,""AllowMembersEditMembership"":true,""AllowRequestToJoinLeave"":false,""AutoAcceptRequestToJoinLeave"":false,""Description"":null,""OnlyAllowMembersViewMembership"":false,""OwnerTitle"":""Communication site Owners"",""RequestToJoinLeaveEmailSetting"":""""}","{""Id"":3,""IsHiddenInUI"":false,""LoginName"":""Communication site Owners"",""Title"":""Communication site Owners"",""PrincipalType"":8,""AllowMembersEditMembership"":false,""AllowRequestToJoinLeave"":false,""AutoAcceptRequestToJoinLeave"":false,""Description"":null,""OnlyAllowMembersViewMembership"":false,""OwnerTitle"":""Communication site Owners"",""RequestToJoinLeaveEmailSetting"":""""}","{""Id"":4,""IsHiddenInUI"":false,""LoginName"":""Communication site Visitors"",""Title"":""Communication site Visitors"",""PrincipalType"":8,""AllowMembersEditMembership"":false,""AllowRequestToJoinLeave"":false,""AutoAcceptRequestToJoinLeave"":false,""Description"":null,""OnlyAllowMembersViewMembership"":false,""OwnerTitle"":""Communication site Owners"",""RequestToJoinLeaveEmailSetting"":""""}",1,,00000000-0000-0000-0000-000000000000,,0,2022-09-12T18:18:07.253,"{""StringValue"":""1;2;d8b65bb3-6ca1-4df2-a4be-0efe08af2580;638032554734300000;715586625""}",/_catalogs/masterpage/seattle.master,,00000000-0000-0000-0000-000000000000,,,0,1,0,0,0,,,d8b65bb3-6ca1-4df2-a4be-0efe08af2580,,,,,1,,1033,2022-11-05T14:06:21Z,2022-10-31T07:29:33Z,0,/_catalogs/masterpage/seattle.master,1,,,,,"{""DecodedUrl"":""https://contoso.sharepoint.com""}",1,1,0,/,,1,0,Communication site,,15,,https://contoso.sharepoint.com,SITEPAGEPUBLISHING,SitePages/Home.aspx,"[{""Member"":{""Id"":3,""IsHiddenInUI"":false,""LoginName"":""Communication site Owners"",""Title"":""Communication site Owners"",""PrincipalType"":8,""AllowMembersEditMembership"":false,""AllowRequestToJoinLeave"":false,""AutoAcceptRequestToJoinLeave"":false,""Description"":null,""OnlyAllowMembersViewMembership"":false,""OwnerTitle"":""Communication site Owners"",""RequestToJoinLeaveEmailSetting"":""""},""RoleDefinitionBindings"":[{""BasePermissions"":{""High"":""2147483647"",""Low"":""4294967295""},""Description"":""Has full control."",""Hidden"":false,""Id"":1073741829,""Name"":""Full Control"",""Order"":1,""RoleTypeKind"":5,""BasePermissionsValue"":[""ViewListItems"",""AddListItems"",""EditListItems"",""DeleteListItems"",""ApproveItems"",""OpenItems"",""ViewVersions"",""DeleteVersions"",""CancelCheckout"",""ManagePersonalViews"",""ManageLists"",""ViewFormPages"",""AnonymousSearchAccessList"",""Open"",""ViewPages"",""AddAndCustomizePages"",""ApplyThemeAndBorder"",""ApplyStyleSheets"",""ViewUsageData"",""CreateSSCSite"",""ManageSubwebs"",""CreateGroups"",""ManagePermissions"",""BrowseDirectories"",""BrowseUserInfo"",""AddDelPrivateWebParts"",""UpdatePersonalWebParts"",""ManageWeb"",""AnonymousSearchAccessWebLists"",""UseClientIntegration"",""UseRemoteAPIs"",""ManageAlerts"",""CreateAlerts"",""EditMyUserInfo"",""EnumeratePermissions""],""RoleTypeKindValue"":""Administrator""}],""PrincipalId"":3}]"
416
478
  ```
479
+
480
+ === "Markdown"
481
+
482
+ ```md
483
+ # spo web get --url "https://contoso.sharepoint.com/subsite" --withGroups "true"
484
+
485
+ Date: 4/10/2023
486
+
487
+ ## Subsite (c59dae7c-48bd-4241-96b7-b81d4bbc25cb)
488
+
489
+ Property | Value
490
+ ---------|-------
491
+ AllowRssFeeds | true
492
+ AlternateCssUrl |
493
+ AppInstanceId | 00000000-0000-0000-0000-000000000000
494
+ ClassicWelcomePage | null
495
+ Configuration | 0
496
+ Created | 2021-09-22T01:54:52.18
497
+ CustomMasterUrl | /subsite/\_catalogs/masterpage/seattle.master
498
+ Description |
499
+ DesignPackageId | 00000000-0000-0000-0000-000000000000
500
+ DocumentLibraryCalloutOfficeWebAppPreviewersDisabled | false
501
+ EnableMinimalDownload | false
502
+ FooterEmphasis | 0
503
+ FooterEnabled | false
504
+ FooterLayout | 0
505
+ HeaderEmphasis | 0
506
+ HeaderLayout | 2
507
+ HideTitleInHeader | false
508
+ HorizontalQuickLaunch | false
509
+ Id | c59dae7c-48bd-4241-96b7-b81d4bbc25cb
510
+ IsEduClass | false
511
+ IsEduClassProvisionChecked | false
512
+ IsEduClassProvisionPending | false
513
+ IsHomepageModernized | false
514
+ IsMultilingual | true
515
+ IsRevertHomepageLinkHidden | false
516
+ Language | 1033
517
+ LastItemModifiedDate | 2023-04-10T06:07:56Z
518
+ LastItemUserModifiedDate | 2023-03-05T08:33:24Z
519
+ LogoAlignment | 0
520
+ MasterUrl | /subsite/\_catalogs/masterpage/seattle.master
521
+ MegaMenuEnabled | false
522
+ NavAudienceTargetingEnabled | false
523
+ NoCrawl | false
524
+ ObjectCacheEnabled | false
525
+ OverwriteTranslationsOnChange | false
526
+ QuickLaunchEnabled | true
527
+ RecycleBinEnabled | true
528
+ SearchScope | 0
529
+ ServerRelativeUrl | /subsite
530
+ SiteLogoUrl | /subsite/\_api/GroupService/GetGroupImage?id='58c0c654-ce7d-444b-9f5f-bc246400f176'&hash=637696347741828775
531
+ SyndicationEnabled | true
532
+ TenantAdminMembersCanShare | 0
533
+ Title | Subsite
534
+ TreeViewEnabled | false
535
+ UIVersion | 15
536
+ UIVersionConfigurationEnabled | false
537
+ Url | https://contoso.sharepoint.com/subsite
538
+ WebTemplate | GROUP
539
+ WelcomePage | SitePages/Home.aspx
540
+ ```
@@ -51,3 +51,19 @@ m365 spo web installedlanguage list --webUrl https://contoso.sharepoint.com
51
51
  DisplayName,LanguageTag,Lcid
52
52
  English,en-US,1033
53
53
  ```
54
+
55
+ === "Markdown"
56
+
57
+ ```md
58
+ # spo web installedlanguage list --webUrl "https://contoso.sharepoint.com"
59
+
60
+ Date: 4/10/2023
61
+
62
+ ## English
63
+
64
+ Property | Value
65
+ ---------|-------
66
+ DisplayName | English
67
+ LanguageTag | en-US
68
+ Lcid | 1033
69
+ ```
@@ -103,3 +103,19 @@ m365 spo web list --url https://contoso.sharepoint.com
103
103
  Title,Url,Id
104
104
  Subsite,https://contoso.sharepoint.com/subsite,b60137df-c3dc-4984-9def-8edcf7c98ab9
105
105
  ```
106
+
107
+ === "Markdown"
108
+
109
+ ```md
110
+ # spo web list --url "https://contoso.sharepoint.com"
111
+
112
+ Date: 4/10/2023
113
+
114
+ ## Subsite (b60137df-c3dc-4984-9def-8edcf7c98ab9)
115
+
116
+ Property | Value
117
+ ---------|-------
118
+ Id | b60137df-c3dc-4984-9def-8edcf7c98ab9
119
+ Title | Subsite
120
+ Url | https://contoso.sharepoint.com/subsite
121
+ ```
@@ -69,6 +69,33 @@ m365 spo web retentionlabel list --webUrl 'https://contoso.sharepoint.com/sites/
69
69
  === "CSV"
70
70
 
71
71
  ```csv
72
- TagId,TagName
73
- def61080-111c-4aea-b72f-5b60e516e36c,Some label,true
72
+ AcceptMessagesOnlyFromSendersOrMembers,AutoDelete,BlockDelete,BlockEdit,ComplianceFlags,ContainsSiteLabel,DisplayName,HasRetentionAction,IsEventTag,RequireSenderAuthenticationEnabled,SuperLock,TagDuration,TagId,TagName,TagRetentionBasedOn,UnlockedAsDefault
73
+ ,1,1,,1,,,1,,,,2555,def61080-111c-4aea-b72f-5b60e516e36c,Some label,CreationAgeInDays,
74
+ ```
75
+
76
+ === "Markdown"
77
+
78
+ ```md
79
+ # spo web retentionlabel list --webUrl "https://contoso.sharepoint.com/sites/sales"
80
+
81
+ Date: 4/11/2023
82
+
83
+ Property | Value
84
+ ---------|-------
85
+ AcceptMessagesOnlyFromSendersOrMembers | false
86
+ AutoDelete | true
87
+ BlockDelete | true
88
+ BlockEdit | false
89
+ ComplianceFlags | 1
90
+ ContainsSiteLabel | false
91
+ DisplayName |
92
+ HasRetentionAction | true
93
+ IsEventTag | false
94
+ RequireSenderAuthenticationEnabled | false
95
+ SuperLock | false
96
+ TagDuration | 2555
97
+ TagId | def61080-111c-4aea-b72f-5b60e516e36c
98
+ TagName | Some Label
99
+ TagRetentionBasedOn | CreationAgeInDays
100
+ UnlockedAsDefault | false
74
101
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pnp/cli-microsoft365",
3
- "version": "6.7.0-beta.eb19618",
3
+ "version": "6.7.0",
4
4
  "description": "Manage Microsoft 365 and SharePoint Framework projects on any platform",
5
5
  "license": "MIT",
6
6
  "main": "./dist/api.js",
@@ -157,6 +157,7 @@
157
157
  "Mastykarz, Waldek <waldek@mastykarz.nl>",
158
158
  "McDonnell, Kevin <kevin@mcd79.com>",
159
159
  "Menon, Arjun <arjun.umenon@gmail.com>",
160
+ "Moon, Andrew <21320638+andrewjymoon@users.noreply.github.com>",
160
161
  "Moujahid, Abderahman <rags_place@hotmail.com>",
161
162
  "Mücklisch, Steve <steve.muecklisch@gmail.com>",
162
163
  "Nachan, Nanddeep <nanddeepnachan@gmail.com>",
@@ -278,4 +279,4 @@
278
279
  "sinon": "^15.0.3",
279
280
  "source-map-support": "^0.5.21"
280
281
  }
281
- }
282
+ }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=FilePropertiesCollection.js.map
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=FileFolderCollection.js.map