This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

WikiPakk Reference

A reference of topics around WikiTraccs WikiPakk - the SharePoint page tree and breadcrumb.

1 - WikiPakk Installation

How to install WikiPakk

Installation of WikiPakk

The WikiPakk solution has to be installed once in the SharePoint tenant before WikiPakk can be added to SharePoint sites.

WikiPakk is installed via the Microsoft Store AppSource.

After installing the WikiPakk app to the SharePoint tenant, it can be added to SharePoint sites by the respective site owners.

Installation via Microsoft AppSource

The following video covers two topics:

  1. installing the app via Microsoft AppSource to the SharePoint tenant
  2. adding the WikiPakk app to a SharePoint site

Watch:



After adding the app

Head over to the video section on the WikiPakk website to learn more.

Updating WikiPakk

WikiPakk currently does not automatically check for updates, and neither does SharePoint. New versions can be discovered manually via AppSource.

Checking for a new WikiPakk version on Microsoft AppSource

You can see the latest version of WikiPakk in AppSource on this page: Details + support.

In AppSource there will also be a changelog showing the changes per release:

Changelog of WikiPakk as shown in AppSource

Updating WikiPakk in SharePoint

There are two steps to updating WikiPakk:

  1. the SharePoint tenant app catalog needs to be updated with the newest version from AppSource
  2. SharePoint sites that use WikiPakk might need to be updated to use this new version

The following sections describe those steps.

Update the SharePoint tenant app catalog

As SharePoint administrator, open the tenant app catalog as follows:

  1. in a browser, open the SharePoint admin center
  2. in the left navigation, select More features
  3. on the right side, several options to choose from appear; look for the Apps section and select Open:

Entry to the SharePoint tenant app catalog.

  1. the SharePoint tenant app catalog should show a previously installed version of WikiPakk:

WikiPakk, installed from AppSource, showing version 2.3.1.

  1. Switch to the classic experience by selecting the classic experience link:
  1. In the classic experience, in the list of apps, select the WikiTraccs WikiPakk app
  2. At the top of the page, select the FILES tab to expand the ribbon menu (note: only if the ribbon menu is not yet visible)
  3. In the ribbon menu, select Upgrade Store App:

You will be redirected to a screen that displays Downloading from: https://addinsinstallation.store.office.com/appinstall/.

Once the file has been downloaded, you will be prompted to trust WikiTraccs WikiPakk:

  1. Choose Deploy and wait; it might appear that nothing is happening for up to 20 seconds

Once the update has been completed, you should be redirected to the app catalog and the App version number should match the version number listed in AppSource.

Now the new app version is ready to be used in SharePoint sites.

Update WikiPakk in SharePoint sites

In SharePoint, an app can have different versions in the tenant app catalog and in sites that the app had been added to.

The previous section described how to update the app from AppSource via the tenant app catalog. This app version is now higher than in the sites that use the app. We need to update those sites as well so they use the latest version.

To update each SharePoint site to the latest WikiPakk version proceed as follows.

As site owner, or site collection administrator of the respective sites:

  1. In a browser, navigate to a SharePoint site that uses WikiPakk
  2. In this site, navigate to Site Contents
  3. For the WikiTraccs WikiPakk app, choose … > Details:
  1. Choose GET IT to update the app:

After a moment, you will be redirected back to Site Contents. The WikiTraccs WikiPakk app title might display in gray, indicating that the update is still in progress.

After a while (and you might have to refresh the page manually) the app title should display in black, indicating that SharePoint finished updating the app.

For the app, select … > Details again. It should now read Good news - you already have this on your site.

Note: this process can be automated, e.g. with the CLI for Microsoft 365.

You can see the app version as well in WikiPakk as follows:

  1. Select Page Tree to expand the page tree panel on the right side
  2. Select the ? that is displayed at the bottom of the page tree; a window opens
  3. The app version is shown right at the top

If the version shown here is lower than the one of the app you just installed, proceed reading the next section about Caching ssues.

Caching issues

There is one rather ugly behavior when updating SharePoint apps. Sometimes the browser caches old resources rather aggressively, making the app appear being older for users.

This is the case when the version number in the ? dialog of WikiPakk shows a lower version number than the app’s version number.

To solve this different strategies helped different clients:

  • Pressing F5 to reload the page
  • Clearing the browser cache
  • Deleting all service workers via the F12 developer tools

This has to be done in all browsers where caching issues occur.

2 - WikiPakk Licensing

How to license WikiPakk

Licensing WikiPakk follows this pattern:

  1. purchase a subscription, immediately get a license key
  2. choose or create one or more SharePoint sites to store the license key in
  3. make sure WikiPakk can reach the licensing server to keep the license key fresh

Above steps are covered in more detail in the sections below.

How to get a license key

Purchase a license via the Pricing page.

The license key is displayed in the browser after purchasing and is sent via email as well.

The license key looks like this:

-----BEGIN V2 LICENSE-----
eyJhcGciOiJSUzI8NiisInR5cCI6IkpXVCJ9.eyJ3dHYiOiIxIiwiaXNzIjoiaHR
<snip>
GNLn6lkQTtZw4mG16h8Mz6RvxlZMHq_861O80PE0oerk2oDSX-0E0
-----END V2 LICENSE-----

Where to store the license key

You store the WikiPakk license key in SharePoint. It is kept fresh by WikiPakk (more on that in section “How are license keys refreshed”).

After receiving the license key you have three options where to store it in SharePoint. Choose one:

  1. in all sites WikiPakk will be added to
  2. in one dedicated configuration site (more on that in section “How to dedicate a specific site to store the WikiPakk license key”)
  3. in one well-known configuration site under the URL /sites/WikiPakkConfiguration (you have to create that, use a communication site)

Ideally you choose one option, although you can combine them.

WikiPakk searches for a license key in the exact order of above list. First in the local site, then it looks in a site you may have dedicated, then it looks in the WikiPakkConfiguration site, if that exists.

WikiPakk uses the first license key it finds.

In any of those sites, you store the license key in the Description field of the Site Pages document library. This is a quick and easy place to store the license key at, and it is always present.

The next section describes in detail how to store the license key.

How to store the license key in the right place

The following instructions apply to any of the sites you might decide to store the license key in. This means, you follow those steps either in

  • all sites WikiPakk has been or will be added to, or
  • one dedicated configuration site you choose, or
  • the default configuration site /sites/WikiPakkConfiguration

As owner of such site, do the following to store the license:

  1. In a browser, open the SharePoint site
  2. Copy the license key to the clipboard
  3. Open the Library Settings of the Site Pages library
  4. Find the place to edit the Description of the Site Pages library
  5. Paste the license key into the Description edit field
  6. Choose to Save
  7. Reload open pages that show the WikiPakk page tree or breadcrumb

WikiPakk should recognize first-time license keys pretty fast, and manually updated keys within 24h.

Above steps are also covered in this video:

What if a license key is missing or expired

If no license key can be found, or the license key has expired, a red warning is shown above the page tree, stating that no valid license key could be found.

How are license keys refreshed

The license key is bound to a flexible subscription that can be cancelled on a monthly basis.

That is why the license key is valid for one month and needs to be refreshed after roughly one month.

WikiPakk takes care of refreshing the license key. When the expiration date is near it will ask a licensing server to exchange the old license key with a new one. The licensing server checks that the subscription is still valid and if yes, returns an updated license key.

How to manually refresh the license key

You might want to manually refresh the license key in case you won’t allow WikiPakk to contact the licensing server.

Here’s a PowerShell that asks for a refreshed license:

$licenseKey = "-----BEGIN V2 LICENSE-----
eyJhcGciOiJSUzI8NiisInR5cCI6IkpXVCJ9.eyJ3dHYiOiIxIiwiaXNzIjoiaHR
<snip>
GNLn6lkQTtZw4mG16h8Mz6RvxlZMHq_861O80PE0oerk2oDSX-0E0
-----END V2 LICENSE-----"
$subscriptionId = "ucpD<snip>YpQMw"

$body = @{ LicenseKey = $licenseKey} | ConvertTo-Json

$result = $null
$result = Invoke-RestMethod -Method Post -Uri "https://graph.wikitransformationproject.com/v1.0/wikipakk/subscriptions/update?subscriptionId=$subscriptionId" -Body $body -ContentType "application/json"
$result.LicenseKey

If you don’t have the subscription ID handy, open https://jwt.ms and paste the license key part between —–BEGIN V2 LICENSE—– and —–END V2 LICENSE—– into the input field.

The decoded license key should now show the subscription ID as subscription:

Decoded WikiPakk license

How to dedicate a specific site to store the WikiPakk license key

Here is how you dedicate a SharePoint site of your choosing to store the WikiPakk license key.

You point WikiPakk to the dedicated SharePoint site via a SharePoint storage entity (a.k.a tenant property).

One option to set a storage entity is via PnP PowerShell.

You need:

  • PowerShell 7
  • with the PowerShell module PnP.PowerShell installed
  • a user account that is in the Owners group of the tenant app catalog site (or site collection admin there)

Here’s a script that will connect to SharePoint and set the storage entity used by WikiPakk:

Connect-PnPOnline `
    -Url https://yourcompany.sharepoint.com `
    -Interactive # ^ use any other site if you don't have access to the root site
Set-PnPStorageEntity `
    -Key "wikipakk.licensesiteurl" `
    -Value "https://yourcompany.sharepoint.com/sites/it-configuration-site" `
    -Description "WikiPakk configuration, where to find the current license key" `
    -Scope Tenant
# Get-PnPStorageEntity # <- use this to list all configured storage entities

Above script instructs WikiPakk to look for the license key in site https://yourcompany.sharepoint.com/sites/it-configuration-site.

2.1 - WikiPakk License Key Lookup and Refresh Flow

This articles shows how WikiPakk searches for and renews its license key.

Key to understanding the license key flow is that a license key always expires after one month. Start and end date of this period are baked into the license key.

When the one-month validity period ends, WikiPakk needs to refresh the license key. The refreshed key can be provided manually or gotten automatically by WikiPakk.

The diagram below might look complicated but boils down to:

  • Can an up-to-date, non-expired license key be found somewhere in the local browser/SharePoint environment?
    • Good: use that. Done.
    • Note: The license key that is stored in SharePoint can be updated at any time manually, which would be on a monthly basis. This can be automated, get in touch if you want to know details on how to automate that.
  • Is there only an expiring or expired license key available, at any location where a license key could be stored?
    • No problem. WikiPakk contacts the licensing server, shows the old license key, and gets a refreshed one that is valid for another month; that is, if the subscription is still alive.
    • Note: this does only work if there has ever been a license key configured, that is now expiring/expired.

Here is the detailed flow:

3 - WikiPakk Page Tree Quick Start

How to get started with the page tree

Add the WikiTraccs WikiPakk app to the site:

Note: your SharePoint admin has to add the app package to the tenant app catalog for the app to show up.

That’s it, the page tree now works.

And here is the page tree editor web part in action:

Use this web part to order the pages. The page tree will show the new order immediately.

4 - WikiPakk Features

What can you expect from WikiTraccs WikiPakk?

What does WikiPakk provide?

WikiTraccs WikiPakk add the following productivity-enhancing functions to the SharePoint modern pages experience:

  • a hierarchical page tree for SharePoint pages
  • a breadcrumb above every page providing quick context
  • a page tree editor to reorder pages

Zero configuration necessary. No content types or fields need to be added. Add the app to any site and breadcrumb and page tree will appear, ready to be used.

A horizontal bar will be added to the top of the site, showing a breadcrumb and a “Page Tree” button. When opening a SharePoint modern page, the breadcrumb will show its position in the configured page hierarchy. An SPFx application customizer is responsible for adding the top bar.

Selecting the “Page Tree” button will slide out a panel from the right, showing all modern pages. The pages are shown as tree, according to the configured page hierarchy.

The “WikiTraccs WikiPakk Page Tree Editor” web part is used to configure the page hierarchy. The web part can be added to any modern page. It shows all modern pages of the site. Those pages can be moved around by drag and drop, forming a hierarchy of pages. Breadcrumb and page tree will reflect the configured hierarchy.

The page tree is compatible with pages that were migrated by WikiTraccs. The migrated Confluence hierarchy just works with the WikiPakk page tree.

New, vanilla SharePoint pages can be added as well. All can be reordered.

5 - WikiPakk Topics

Topics around the WikiPakk page tree for SharePoint

5.1 - Inaccessible Pages

What does it mean if a tree node says ‘inaccessible page’?

You might see nodes in the tree that say inaccessible page, like here with inaccessible page 47:

Where do they come from?

There are two sources: deleted pages and pages that the current user is not allowed to see.

Deleted pages

Deleting pages can make tree nodes show the inaccessible page placeholder.

Consider the following page tree:

Note the Projects page that has two child pages: Project Bar and Project Foo.

Now we delete the Projects page (that has the SharePoint item ID 47):

The tree now cannot get information about that page anymore. However, it still knows where the page used to be in the hierarchy of pages.

To maintain the configured hierarchy of pages, the tree shows a placeholder inaccessible page 47 where the page used to be:

The child pages are still being shown at the correct position.

If we restore the Projects page from the recycle bin the tree will again show its title and link to the page:

Note that WikiPakk cannot know if a page has been deleted or if a page is not accessible due to missing permissions.

Pages with unique permissions

Consider the following page tree:

What happens if a user cannot access the Projects page? This is the case when the page has its permission hierarchy broken, unique permissions set, and the current user is not allowed to view the page.

For the current user, the tree will look like this:

For other users, the tree will look differently, depending on their access level.

Note that WikiPakk cannot know if a page is not accessible due to missing permissions or if it has been deleted.

SharePoint works differently than Confluence

If you know the page tree from Atlassian Confluence, you won’t know this issue of inaccessible pages.

In Confluence, if you are not permitted to access a page, you also cannot access its child pages.

In Confluence, if a page is deleted, the child pages won’t exist anymore.

Pages work differently in SharePoint.

In SharePoint, when deleting a page, its child pages in the Site Pages library and in the WikiPakk page tree still exist.

In SharePoint, when restricting access to a page, child pages might still be accessible for the current user.

Thus WikiPakk has to cope with a situation where in the midst of the page tree certain pages might be inaccessible.

Those pages will be represented as inaccessible page.

Handling inaccessible pages

There are some strategies to handle those pages.

Remove those pages via context menu

Note: this option is available as of WikiPakk 2.5.1. Update now.

Use the mouse to hover over the inaccessible page. Click the three dots to open the context menu. Click Remove from tree.

This removes hierarchy information for this page from the WikiPakk hierarchy table. All children of this page will be moved one level up.

The resulting tree looks like this:

Move inaccessible pages to a dedicated node

Use the WikiPakk page tree editor web part to move the inaccessible page away:

Note: the Deleted node in above image is a dummy page that has been created to serve as parent for inaccessible page nodes.

Out of sight, out of mind.

If the inaccessible page has child pages, you might want to move those to another parent node. In our sample those are the Project Bar and Project Foo pages, which have been moved to Home.

Advanced: Delete hierarchy information for inaccessible pages

You can make the inaccessible pages disappear completely by deleting their hierarchy information.

WikiTraccs stores hierarchy information for pages in a hidden list. This list exists in every site WikiPakk has been added to.

Open WikiPakk’s hidden hierarchy list by appending Lists/WikiTraccsPageTree to the SharePoint site root address, like so: https://contoso.sharepoint.com/sites/pagetreedemo/Lists/WikiTraccsPageTree.

Build this root address for your site and enter it into the browser address bar.

Locate the inaccessible page ID in the WtPId column, here 47.

Delete the list item.

The inaccessible page 47 is now gone from the tree.

Usability outlook

There are features currently being worked on that will improve handling for deleted pages:

  • ✅ done: manual option to remove inaccessible page nodes from the tree via their context menu
  • detection of deleted pages by looking in the recycle bin - this would allow removing some of the inaccessible page nodes automatically

6 - WikiPakk FAQ

Frequently Asked Questions (FAQ) about the WikiPakk Page Tree for SharePoint

This FAQ covers questions folks have while evaluating and using WikiPakk.

Note that this covers questions solely related to WikiPakk, but also questions related to WikiPakk in the context of a Confluence to SharePoint migration - which was the genesis of WikiPakk.

Q: Does WikiPakk work with “normal” SharePoint pages?

A: Yes. Each SharePoint site owner can decide to add the WikiPakk app to their site to allow users to organize pages.

Q: We would like to know why WikiPakk is set as a subscription model, as we will do the Confluence to SharePoint migration once.

A: WikiPakk provides value even after the migration.

Immediately after the migration, it will be useful because it picks up and displays the migrated page hierarchy. Users have an easier time finding their pages.

Over time, new SharePoint pages will be added, and the hierarchy needs to be adjusted. Since the page tree comes with an editor, users can just do that. Move pages around in the tree, change the hierarchy, organize knowledge. New SharePoint pages will be added at the right place in the hierarchy, just like in Confluence.

But WikiPakk also provides value for SharePoint users working in regular sites, that have no migrated pages in them. WikiPakk is fully compatible with out of the box SharePoint pages. SharePoint has no built-in way of organizing pages in a flexible hierarchy. The built-in SharePoint menus need to be updated manually and are limited to 2 or 3 levels of nesting. That’s where WikiPakk can help. Each site owner can decide to add it to their site. New pages will be shown in the page tree automatically, ready to be organized in just the right way.

Then there is Microsoft, constantly changing and evolving SharePoint Online, and WikiPakk has to keep up - which is a justification of the subscription model.

Given all that, many WikiTraccs users decide to add WikiPakk to the mix to at least ease the transition from Confluence to SharePoint.

Note that you can at any time cancel the subscription, I won’t hound you. Either it provides value, or it doesn’t. You decide (and hopefully give me some feedback).


Q: I was wondering if you offered a trial of the WikiPakk SPFx solution?

A: You can install WikiPakk from Microsoft AppSource and try it in trial mode. It’ll display a note that it cannot find a license but is otherwise fully functional.

Further reading:

7 - Troubleshooting WikiPakk

What if something doesn’t work with WikiPakk?

Diagnosing issues in the page hierarchy

The SharePoint page tree gets hierarchy information from different sources, depending on whether it is showing regular SharePoint modern pages, or pages that have been migrated from Confluence to SharePoint.

For the hierarchy to work there need to be:

  • modern SharePoint pages
  • a page ID per page
  • a parent page ID per page

The page tree might be incomplete if any of those is missing.

Checking the hierarchy for pages that have been migrated from Confluence to SharePoint

Let’s assume the parent page of a page is missing in the page tree.

First, open the “aggregated-info” progress log files for the Confluence space this page was in and check that all pages have been migrated. If there are pages yet to be migrated, migrate them and check back if the page tree looks good after doing that.

If the issue persists, continue.

To diagnose the issue we first need to find out if the parent page has been migrated yet.

Open the page, whose parent page is missing, here it is arc42:

The Confluence page ID is part of the page URL. Copy this page ID. In the screenshot this is 2293795.

We are now going to look up the parent page ID and parent page.

Open the Site Pages library. Make sure to add the columns Confluence: Id (WikiTraccs) and Confluence: Parent Id (WikiTraccs) to the current view.

Filter the column Confluence:Id (WikiTraccs) for the page ID, here 2293795:

In the screenshot above the parent page ID is zero (0), which indicates this is a root page that has no parent page. This was the root page of a Confluence space. Note that there can be multiple such root pages per space.

Everything is fine in this case.

But imagine the parent page ID being 123456. If this was the case, do the following: filter the Confluence: Id (WikiTraccs) column for the parent page ID (here: 123456), to find the parent page.

Can no such parent page be found? The page has not yet been migrated and the tree is correctly showing no parent page. In this case, migrate the missing page.

Can the parent page be found? The page tree should display it. There might be an issue with the page tree if the parent page exists, but is not shown in the page tree. In this case, copy the log (see next section on how to do this), and send the log, the page ID, the parent page ID and the progress log files for the space to [email protected] for further diagnosis.

How to get and copy the WikiPakk logs

The log can be found in the browser console.

To view and copy the log of the SharePoint page tree and breadcrumb follow these steps:

  1. open the Chrome browser
  2. open a modern SharePoint page where the page tree misbehaves
  3. open the Chrome developer tools: choose the three dot menu in the upper right corner, then More tools, then Developer tools; or simply press the F12 key
  4. the developer tools panel opens
  5. choose the Console tab
  6. enter wikipakk in the search box
  7. choose the levels drop down
  8. select all levels, including Verbose

Developert tools, showing log entries of WikiPakk

  1. reload the page, for example by pressing the F5 key

The console should now show lots of log entries from WikiPakk, like in above screenshot.

When being asked for, copy all those log entries and send them to [email protected].

8 - Legacy: Confluence Page Hierarchy

This article covers how migrated page metadata from Confluence can be used to build a page tree.

The WikiTraccs Page tree shows a page tree like in Confluence.

Example of the page tree showing SharePoint pages in a hierarchical fashion.

Additional Site Pages Library Columns

SharePoint stores modern pages in the Site Pages Library.

WikiTraccs creates modern pages in the Site Pages Library as well.

Additional columns must be added to the Site Pages Library for the page tree to work.

Display NameInternal NameTypeNotesSample Value
Confluence: Id (WikiTraccs)WT_In_CfContentIdSingle line of textConfluence page ID118587460
Confluence: Title (WikiTraccs)WT_In_CfTitleSingle line of textConfluence page titleDemo Page
Confluence: Parent Id (WikiTraccs)WT_In_CfParentIdSingle line of textID of parent page (0 for the top-most pages)118587459
Confluence: Parent Id Chain (WikiTraccs)WT_In_CfParentIdChainMultiple lines of textChain of all parent IDs, starting with top-most, diving down to the right; using ;# and ;#;# as delimiters like in the sample value (None;#0 for top-most pages)Page;#118587415;#;#Page;#118587459
Confluence: Space Key (WikiTraccs)WT_In_CfSpaceKeySingle line of textSpace keyWTD
Confluence: Space Name (WikiTraccs)WT_In_CfSpaceNameSingle line of textSpace nameWikiTraccs Demo Space
Confluence: Sibling Order (WikiTraccs)WT_In_CfSiblingOrderNumberOrder in the page tree, lower numbers come first1

Create those columns via the Library settings of the Site Pages library.

When creating the columns, in the Column name input, enter the Internal name as stated in the table above. This is the only way to properly set the internal name in the browser.

The configuration of the Site Pages library now shows the added columns:

Column have been added to the Site Pages library.

In a second step, you can rename the columns.

Page Metadata

The page tree automatically picks up any metadata in the Site Pages Library.

Let’s manually enter metadata for some pages:

Page Metadata for the WikiTraccs Page Tree

Open or reload a page with metadata.

Now a breadcrumb should appear that looks like this:

WikiTraccs Page Breadcrumb

Selecting the page tree icon right of the breadcrumb opens the page tree:

WikiTraccs Page Tree