Skip to content

Bug report: spo site list contains \n in property value #2807

@SaschaHenning

Description

@SaschaHenning

Description

spo site list -o json results in a json containing line breaks in a property value. Therefore it cannot be used directly to work with it using a JSON parser like jq

Steps to reproduce

  1. run m365 spo site list
  2. check json property "_ObjectIdentity_" and find unescaped \n
    Following sample is simplified:
[
{
    "_ObjectType_": "Microsoft.Online.SharePoint.TenantAdministration.SiteProperties",
    "_ObjectIdentity_": "347aff9f-509f-3000-34e9-a0437a9e51a5|908bed80-a04a-4433-b4a0-883d9847d110:bb1c14e0-2029-438a-b9f1-ff90c629b4c0\nSiteProperties\nhttps%3a%2f%2fxyz.sharepoint.com%2fsites%2f826testgroup1",
  }
]
  1. if you now want to do something with this json (like parse with jq) this will result in an error
sites=$(m365 spo site list -o json)
siteIds=($(echo $sites | jq '.[] | {Url} | .[]'))
parse error: Invalid string: control characters from U+0000 through U+001F must be escaped at line 6, column 86

Expected results

be able to work with the JSON without having to fix the linebreaks first

Actual results

parse error: Invalid string: control characters from U+0000 through U+001F must be escaped at line 6, column 86

Diagnostics

No response

CLI for Microsoft 365 version

v4.1.0

nodejs version

v14.18.1

Operating system (environment)

macOS

Shell

zsh

cli doctor

{
  "os": {
    "platform": "darwin",
    "version": "Darwin Kernel Version 21.1.0: Wed Oct 13 17:33:01 PDT 2021; root:xnu-8019.41.5~1/RELEASE_ARM64_T6000",
    "release": "21.1.0"
  },
  "cliVersion": "4.1.0",
  "nodeVersion": "v14.18.1",
  "cliAadAppId": "31359c7f-bd7e-475c-86db-fdb8c937548e",
  "cliAadAppTenant": "common",
  "authMode": "DeviceCode",
  "cliEnvironment": "",
  "roles": [],
  "scopes": [
    "AllSites.FullControl",
    "AppCatalog.ReadWrite.All",
    "ChannelMember.ReadWrite.All",
    "ChannelMessage.Send",
    "ChannelSettings.ReadWrite.All",
    "Directory.AccessAsUser.All",
    "Directory.ReadWrite.All",
    "Group.ReadWrite.All",
    "IdentityProvider.ReadWrite.All",
    "Mail.ReadWrite",
    "Mail.Send",
    "Policy.Read.All",
    "Reports.Read.All",
    "Tasks.ReadWrite",
    "Team.Create",
    "TeamMember.ReadWrite.All",
    "TeamsApp.ReadWrite.All",
    "TeamsAppInstallation.ReadWriteForUser",
    "TeamSettings.ReadWrite.All",
    "TeamsTab.ReadWrite.All",
    "TermStore.ReadWrite.All",
    "User.Invite.All",
    "User.ReadWrite.All",
    "profile",
    "openid",
    "email",
    "AllSites.FullControl",
    "AppCatalog.ReadWrite.All",
    "ChannelMember.ReadWrite.All",
    "ChannelMessage.Send",
    "ChannelSettings.ReadWrite.All",
    "Directory.AccessAsUser.All",
    "Directory.ReadWrite.All",
    "Group.ReadWrite.All",
    "IdentityProvider.ReadWrite.All",
    "Mail.ReadWrite",
    "Mail.Send",
    "Policy.Read.All",
    "Reports.Read.All",
    "Tasks.ReadWrite",
    "Team.Create",
    "TeamMember.ReadWrite.All",
    "TeamsApp.ReadWrite.All",
    "TeamsAppInstallation.ReadWriteForUser",
    "TeamSettings.ReadWrite.All",
    "TeamsTab.ReadWrite.All",
    "TermStore.ReadWrite.All",
    "User.Invite.All",
    "User.ReadWrite.All",
    "AllSites.FullControl",
    "AppCatalog.ReadWrite.All",
    "ChannelMember.ReadWrite.All",
    "ChannelMessage.Send",
    "ChannelSettings.ReadWrite.All",
    "Directory.AccessAsUser.All",
    "Directory.ReadWrite.All",
    "Group.ReadWrite.All",
    "IdentityProvider.ReadWrite.All",
    "Mail.ReadWrite",
    "Mail.Send",
    "Policy.Read.All",
    "Reports.Read.All",
    "Tasks.ReadWrite",
    "Team.Create",
    "TeamMember.ReadWrite.All",
    "TeamsApp.ReadWrite.All",
    "TeamsAppInstallation.ReadWriteForUser",
    "TeamSettings.ReadWrite.All",
    "TeamsTab.ReadWrite.All",
    "TermStore.ReadWrite.All",
    "User.Invite.All",
    "User.ReadWrite.All"
  ]
}

Additional Info

No response

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions