Akumina Developer Documentation

Akumina Developer Documentation

  • API
  • Docs
  • Blog

›Site Deployer

Akumina

  • Quickstart

Modern

  • Overview
  • FAQ
  • Single Page Application
  • Modern Web Part Library
  • Google Analytics for Modern Pages

Widget Builder

  • Widget Builder Structure
  • Akumina Widget Builder
  • Skipping instances
  • Token replacement for widget properties

Widget Development Quickstart

  • Setting up the Project
  • Configuring .env file
  • Configuring - akumina.sitedployer.config.json file
  • Configuring - akumina.config.json file
  • Extras

Virtual Page Builder

  • Akumina Virtual Page Builder
  • Using Virtual Page Layouts

Stream Card Builder

  • Installation
  • Stream Card Builder
  • Custom Cards
  • Activity Comments Config
  • Akumina Activity Stream PUSH Subscription using PowerAutomate to connect to ServiceNow
  • Akumina Activity Stream PUSH Subscription using PowerAutomate to connect to Dynamic 365

Yo Akumina

  • Yo Akumina
  • Start with Yeoman
  • React
  • Simple template

Widget Info

  • Akumina Widgets Overview
  • Building a New Widget Instance
  • Widget Views
  • Widget Properties
  • Global Vs Local widgets
  • Akumina React Widgets
  • Callbacks
  • RenderChildWidgets
  • Vendor Package List

Site Deployer

  • Overview
  • Version 4.8
  • Version 5.0
  • List Attribute Deployments
  • NPM Commands
  • SPA Updates and Deploying to multiple sites
  • Using site deployer with MFA

Headless

  • Quickstart
  • Headless Troubleshooting

Site Creator

  • Overview
  • Adding A Custom Site Definition
  • Core Step Classes
  • Custom Site Definition Components
  • Custom Site Definition XML
  • Custom Subsite Definitions
  • Sample Step Code
  • Supported Tokens

Azure DevOps

  • CI/CD using Azure DevOps
  • Setting up a build to deploy a site package
  • Setting up a build to deploy file to App Manager hosted in an app service

Configuration

  • Configuration Context Overview
  • Edit the Redis cache timeout
  • Using a key vault for the client id and client secret

Debugging

  • Debugging in Akumina

Advanced

  • Central Site Collection Support
  • Eventing OOB Digital Workplace Events
  • Working with custom JSX Views
  • Page Indexing

Service Hub

  • Quickstart

Version 4.8

Download

Please see the release section for downloading the Site Deployer assets

Install

npm install

Command line parameters are set in .env

argumentdescriptionexample
versionShows the Site deployer version
envdirPath to location that contains SiteDefinitions directory - should have trailing slashC:\TEMP\
assetdirectoryDirectory name in SiteDefinitions directoryMyClient (Looks in envdir\SiteDefinitions\MyClient)
optionsComma deliminted list of options - see belowjs,widgets
mlPopulate AkId,AkLanguageId,AkLanguageCode columnstrue or false
langidLanguage Id1033
spdirectoryFolder in Sharepoint Style Library where bits gets deployedDigitalWorkplace
spUrlSharepoint site collectionhttps://tenant.sharepoint.com/sites/mysitecollection
spUserSharepoint usernamemyusername@tenant.onmicrosoft.com
spPasswordSharepoint password12345
clientidSharepoint app client idguid
clientsecretSharepoint app client secret
azurestorageaccountnameAzure Storage account name
azurestoragecontainerAzure Storage blob container name
azurestorageaccountkeyAzure Storage account key
cdnprefixreplaces {{CDNPrefix}} token in Master page with this value
multideploymentDeploys the currently selected option to each site defined in inventory.sites.json
centralspurlCentral site url for widget deployment

Minimum usage with username|password

Akumina.SiteDeployer.exe options "js" spUser "myusername@tenant.onmicrosoft.com" spPassword "mypassword" spUrl "https://tenant.sharepoint.com/sites/mysitecollection" envdir "C:\TEMP\\" assetdirectory "MyClient" spdirectory "DigitalWorkplace" centralspurl "https://tenant.sharepoint.com/sites/centralsitecollection"

Minimum usage with clientid|clientsecret

Akumina.SiteDeployer.exe options "js" spUrl "https://tenant.sharepoint.com/sites/mysitecollection" clientid "myclientid" clientsecret "myclientsecret" envdir "C:\TEMP\\" assetdirectory "MyClient" spdirectory "DigitalWorkplace" centralspurl "https://tenant.sharepoint.com/sites/centralsitecollection"

Usage

node ./deploy.js OR npm run deploy

Set options to true/false in akumina.sitedeployer.config.json:

optionDescription
masterpageDeploys contents of envdir/sitedefinitions/assetdirectory/MasterPages (classic sites)
jsDeploys contents of envdir/sitedefinitions/assetdirectory/branding/js
cssDeploys contents of envdir/sitedefinitions/assetdirectory/branding/css
listsDeploys lists based on envdir/sitedefinitions/assetdirectory/ListDefinitions/Lists.xml
layoutsDeploys new page layouts from envdir/sitedefinitions/assetdirectory/PageLayouts/Elements.xml
pagesDeploys new .aspx pages from envdir/sitedefinitions/assetdirectory/Pages/Elements.xml
addtermsetsDeploys termsets based on envdir/sitedefinitions/assetdirectory/Taxonomy/terms.xml
controlsDeploys widgets onto pages from envdir/sitedefinitions/assetdirectory/PageContent/pages.xml
widgetsDeploys widget packages from envdir/sitedefinitions/assetdirectory/WidgetPackages/*.zip
contentfilesDeploys contents of envdir/sitedefinitions/assetdirectory/branding/content
imagefilesDeploys contents of envdir/sitedefinitions/assetdirectory/branding/imgimages
updatelistsDeploys list content based on envdir/sitedefinitions/assetdirectory/ListDefinitions/Update.xml
homepageSets default home page for the site collection to Pages/home.aspx unless envdir/sitedefinitions/assetdirectory/homepage/Elements.json exists
fontsDeploys contents of envdir/sitedefinitions/assetdirectory/branding/fonts
exportlistsReads 'exportLists' key from app.config - will export configured lists
uploadfilesDeploys contents of envdir/sitedefinitions/assetdirectory/UploadFiles
webpartgallery
groupsDeploys Sharepoint Security Groups from envdir/sitedefinitions/assetdirectory/SecurityGroups/groups.xml
sitepropertiesDeploys contents of envdir/sitedefinitions/assetdirectory/SiteProperties/properties.xml
virtualpagesDeploys contents of envdir/sitedefinitions/assetdirectory/VirtualPages - see https://akumina.github.io/docs/AK-Virtual-Page-Builder.html
cdnassetsDeploys assets to the Azure Storage
sleepSleeps for 15 seconds
spusersearchGets the count of users in the search
webpartgalleryAdds .dwp files to the web part gallery
virtuallayoutAdd Virtual Page Layouts
updatepagecacheUpdated the page cache for the site; see https://akumina.github.io/docs/Site-Deployer-updatepagecache-option
listsettingsUpdates list settings from envdir/sitedefinitions/assetdirectory/ListSettings/Update.xml see https://akumina.github.io/docs/Site-Package--ListSettings

Nuances

Modern deployment

Due to differences in how Modern works vs Classic, some steps in the site creator have no relevance. The table below is a list of site deployer steps, and their classic vs modern mapping.

Site Deployer StepsClassicModernComments
masterpageYesNoDeploys classic publishing master page; In modern, master page is located in content/templates, see https://akumina.github.io/docs/Modern--Deploying-a-virtual-master-page
jsYesYes
cssYesYes
listsYesYes
layoutsYesNoDeploys classic publishing layouts; In modern, virtual pages and layouts is used
pagesYesNoDeploys classic publishing pages; In modern, virtual pages and layouts is used
virtualpagesYesYes
controlsYesNoDeploys classic publishing pages; In modern, virtual pages and layouts is used
widgetsYesYesCentral - Widget Data, Delivery - Content and Instance Data
contentfilesYesYes
imagefilesYesYes
homepageYesNo
fontsYesYes
updatelistsYesYes
addtermsetsYesYes
cdnassetsYesYes
sleepYesYes
exportlistsYesYes
uploadfilesYesYes
spusersearchYesYes
webpartgalleryYesNo
groupsYesYes
sitepropertiesYesYes
spusersearchYesYes
virtuallayoutYesYes
updatepagecacheYesYes

Nuances

There is a known issue with the Site Deployer wherein the envdir, and other subsequent directory locations, do not function properly with the site deployer. The reason for this is because the directory location is passed as an arg to the SiteDeployer as a string and split based on space characters. This causes the directory location to be cut in half and the SiteDeployer to output an error.

This is a known issue, a work-around is provided below:

const envParams = Object.entries(process.env).filter(([key, value]) =>
    siteDeployerConfig.Args.includes(key) && value != '').map(o => 
        o[0] === 'envdir' 
            ? `${o[0]} ${'"' + o[1] + '"'}`
            : `${o[0]} ${o[1]}`).join(' ')

This snippet, when placed in the root/tools/deploy.js file, will filter out that one param and allow it to be passed to the SiteDeployer with a string and wrapped in quotes to be parsed as a string literal.

← OverviewVersion 5.0 →
  • Download
    • Nuances
  • Modern deployment
  • Nuances
Akumina Developer Documentation
Docs
Akumina Framework 5.0Akumina Widget BuilderAkumina Yeoman GeneratorSite Deployer
Community
Akumina Community Site
More
GitHubStar
Copyright © 2023 Akumina