Microsoft cloud engineer - SharePoint, Office 365, Azure, DotNet, Angular, JavaScript.
Microsoft cloud engineer - SharePoint, Office 365, Azure, DotNet, Angular, JavaScript.

September 2019

ODOPEN – Onedrive Open Protocol

Recently I had F12 network trace open and launch OneDrive “Sync” button from SharePoint Modern pages toolbar.   A strange protocol showed on the network activity.  Not HTTP or HTTPS, but “ODOPEN://”

Application launcher custom URL prefixes enable web browsers to handoff to local desktop applications.   Here, ODOPEN is One Drive Open and activates the OneDrive client by passing parameters for the scope destination document library to sync.

Parameters are enumerated below in the Code section.   GUID for the scope (Site / Web / Library) identify the target data.   Current user detail is passed with user GUID and user Email.  Interesting to see how the “Sync” button works internally and wanted to share notes.

Cheers  

shades_smile

Video

Code

odopen://sync?userId=45f4af2f-e9e9-48a9-93c5-00df32aa7488&
userEmail=spjeff@spjeff.com&
isSiteAdmin=1&
siteId={07a88858-981d-4465-b36b-52ae6065d6b0}&
webId={c1c208d9-5b06-4703-981c-f6240fb45c4d}&
webTitle=Jeff Jones&
webTemplate=21&
webLogoUrl=_layouts/15/images/siteicon.png&
webUrl=https://spjeff-my.sharepoint.com/personal/spjeff_spjeff_com&
onPrem=0&
libraryType=1&
listId={9CBDD007-6D00-4F69-8D2C-BDD10D95F518}&
listTitle=Documents&
scope=OPENLIST

Screenshots

image

References

  • None found yet

VIDEO – Azure CICD Pipeline with SP Framework (SPFX)

Below end to end demonstration of creating SharePoint Framework (SPFX 1.9) with Azure Dev Ops (ADO) code repository to hold original source.  ADO uses for source code repositry (repo) to hold the SPFX project code.

From there, ADO “Build” creates SPPKG dynamically with a Ubuntu container VM that employs NODE and NPM install to load all dependency.   Centralized container build has the benefit of uniform consistency.   No developer workstation configurations.   No server setting inconsistency.

Finally ADO “Release” copies the SPPKG into SharePoint Online App Catalog with Office 365 Command Line Interface (CLI).   From there, it can be added to page on sites across the O365 Tenant.

Cheers. 

shades_smile

Video

Screenshots

image
image
image
image
image
image
image
SNAGHTMLe61d4d

References

Code – Build Pipeline YAML

pool:
  name: Azure Pipelines
steps:
- task: NodeTool@0
  displayName: 'Use Node 10.x'
  inputs:
    versionSpec: 10.x
    checkLatest: true
- task: Npm@1
  displayName: 'npm install'
  inputs:
    verbose: false
- task: Npm@1
  displayName: 'npm test'
  inputs:
    command: custom
    verbose: false
    customCommand: test
- task: PublishTestResults@2
  displayName: 'Publish Test Results temp/test/junit/junit.xml'
  inputs:
    testResultsFiles: temp/test/junit/junit.xml
    searchFolder: '$(Build.SourcesDirectory)'
- task: PublishCodeCoverageResults@1
  displayName: 'Publish code coverage from $(Build.SourcesDirectory)/temp/test/cobertura-coverage.xml'
  inputs:
    codeCoverageTool: Cobertura
    summaryFileLocation: '$(Build.SourcesDirectory)/temp/test/cobertura-coverage.xml'
    reportDirectory: '$(Build.SourcesDirectory)/temp/test'
- task: Gulp@0
  displayName: 'gulp bundle'
  inputs:
    targets: bundle
    arguments: '--ship'
    publishJUnitResults: true
- task: Gulp@0
  displayName: 'gulp package-solution'
  inputs:
    targets: 'package-solution'
    arguments: '--ship'
- script: 'dir sharepoint/solution/*.sppkg'
  displayName: DIR
- task: CopyFiles@2
  displayName: 'Copy Files to: $(build.artifactstagingdirectory)/drop'
  inputs:
    Contents: 'sharepoint/solution/*.sppkg'
    TargetFolder: '$(build.artifactstagingdirectory)/drop'
- task: PublishBuildArtifacts@1
  displayName: 'Publish artifacts: drop'
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)/drop'

Code – Release Pipeline YAML

steps:
- task: NodeTool@0
   displayName: 'Use Node 10.x'
   inputs:
     versionSpec: 10.x
steps:
- task: Npm@1
   displayName: 'npm custom'
   inputs:
     command: custom
     verbose: false
     customCommand: 'install -g @pnp/office365-cli'
#Your build pipeline references a secret variable named ‘password’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab, and then select the option to make it secret. See https://go.microsoft.com/fwlink/?linkid=865972 variables: tenant: 'spjeff' catalogsite: 'sites/catalog' username: 'spjeff@spjeff.com' steps: - script: 'o365 spo login https://$(tenant).sharepoint.com/$(catalogsite) --authType password --userName $(username) --password $(password)' displayName: 'Command Line Script'
steps: - script: 'o365 spo app add -p $(System.DefaultWorkingDirectory)/SPFX-CICD/drop/sharepoint/solution/code.sppkg --overwrite' displayName: 'Command Line Script'
variables: tenant: 'spjeff' catalogsite: 'sites/catalog' steps: - script: 'o365 spo app deploy --name code.sppkg --appCatalogUrl https://$(tenant).sharepoint.com/$(catalogsite)' displayName: 'Command Line Script'

What’s in that patch? September 2019

NOTE – PDF format updated to include both SharePoint 2013, 2016, and 2019 notes.

Ever wondered what fixes are inside of a given CU?   Please see attached PDF with full detail. I wanted a new format for easy reading.   Show management and make the business case for why downtime should be taken to apply CUs.  Also posted at https://sharepointupdates.com/

If you found this helpful, please leave a comment.   

shades_smile_thumb_thumb_thumb_thumb[2]

Download

What’s in that patch – Sep 2019.PDF

© Copyright 2016
@ SPJeff

Return to Top ▲Return to Top ▲