Akumina Developer Documentation

Akumina Developer Documentation

  • API
  • Docs
  • Blog

›Site Deployer

Akumina

  • Quickstart

Yo Akumina

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

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

Widget Info

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

Virtual Page Builder

  • Akumina Virtual Page Builder
  • Using Virtual Page Layouts
  • Creating a Custom Layout

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

Site Deployer

  • Overview
  • Version 6.0
  • List Attribute Deployments
  • NPM Commands
  • SPA Updates and Deploying to multiple sites

Authoring

  • Content Action Event
  • Publish Validation Integration
  • Field Event Integration
  • CK Editor external plugins

Headless

  • Quickstart
  • Headless Teams support
  • Headless Troubleshooting

Modern

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

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

Patch Notes

  • Patch Notes

Version 6.0

Download

Please see the release section for downloading the Site Deployer assets

Install & Usage

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
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.jsontrue or false
centralspurlCentral site url for widget deployment
tenantidUsed by new auth flow
aadclientidAAD graph app client id
aadclientsecretAAD graph client secret for use with CI\CD only (dont use for local development)
appmanagerurlApp Manager URL for use with new Auth flow
akquerykeyAppManager Query key - for use with contentapp option'backgroundprocessorkey' in tenant settings
spcontextretrycountFor use with 429 errors, defaults to 1 we recommend 5 if getting throttled
spcontextretryintervalFor use with 429 errors, defaults to 500ms we recommend 2000 if getting throttled

Deprecated arguments

It is recommended to use the new auth flow options from microsoft

You should no longer use these:

argumentdescriptionexample
spUserSharepoint usernamemyusername@tenant.onmicrosoft.com
spPasswordSharepoint password12345
clientidSharepoint app client idguid - ClientId and ClientSecret are used when accounts have MFA and cannot use a username/password. See https://akumina.github.io/docs/Site-Deployer-AppOnly
clientsecretSharepoint app client secretClientId and ClientSecret are used when accounts have MFA and cannot use a username/password. See https://akumina.github.io/docs/Site-Deployer-AppOnly

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"

Minimum usage with graph app (aadclientid) - this will cause PROMPT for creds

Akumina.SiteDeployer.exe options "lists" envdir "C:\TEMP\\" assetdirectory "MyClient" spUrl "https://tenant.sharepoint.com/sites/mysitecollection" tenantId 3527a7db-7f88-42ad-b8c3-b4e6d8a35761 aadclientid 685953f5-b7ed-4e56-9fd6-5036e33e9cab appmanagerurl "https://yourakumina.onakumina.com"

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 - see https://akumina.github.io/docs/Site-Package-ListDefinitions-Folder#export
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
exportcommentsExports comments from NewsComments_AK list into the Akumina 5.0 Comment format. Places exported comments in {EnvironmentalPath}\SiteDefinitions{AssetDirectory}*Export* directory. A separate file will be created for each set of 3000 comments (e.g. Comments1.json, Comments2.json).

To import these comments into the Comment 5.0 engine, go to App Manager / Management Apps / Comments App and click on the "Import" button. Select one of the exported files and the import process will begin. You can monitor the status of the import process from this page.
listsettingsUpdates list settings from envdir/sitedefinitions/assetdirectory/ListSettings/Update.xml see https://akumina.github.io/docs/Site-Package--ListSettings
contentappsDeploys App Manager Content Apps from envdir/sitedefinitions/assetdirectory/ContentApps/Author.json see https://akumina.github.io/docs/Site-Package-ContentApps-Folder
updatespapropertiesUpdates the properties for the Single Page App; see https://akumina.github.io/docs/Site-Deployer-updatespaproperties-option

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
masterpageYesNoSee https://akumina.github.io/docs/Modern--Deploying-a-virtual-master-page
jsYesYes
cssYesYes
listsYesYes
layoutsYesNo
pagesYesNo
virtualpagesYesYes
controlsYesNo
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
updatespapropertiesNoYesThe Single Page Application is only in Modern

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.

← OverviewList Attribute Deployments →
  • Download
    • Install & Usage
    • Deprecated arguments
    • Minimum usage with username|password
    • Minimum usage with clientid|clientsecret
    • Minimum usage with graph app (aadclientid) - this will cause PROMPT for creds
    • <a id="usage"></a>Usage
  • Modern deployment
  • Nuances
Akumina Developer Documentation
Docs
Akumina Framework 5.0Akumina Widget BuilderAkumina Yeoman GeneratorSite Deployer
Community
Akumina Community Site
More
GitHubStar
Copyright © 2024 Akumina