Library Admin Guide

Created: 2026-05-30 · Updated: 2026-06-13

The Library Admin Guide describes how to manage the public PPPTools library. This document is intended for administrators with access to the admin panel.

Administrators only

The admin panel is only accessible with a valid API key. Unauthorized access is not possible.


Admin Panel

The admin panel is available at:

https://ppptools.library.happy-pc.ch/admin

Access requires an Admin API key, which is entered at login.


Uploading Drafts from PowerPoint

Content is not uploaded to the online library by regular users — this path is protected by an upload API key and is therefore reserved for administrators. (The normal approval workflow via the network path is independent of this → Publish Flow.)

1. Enter the upload API key

Enter the key once in the add-in:

Admin → Settings → Library Upload

  • Server URL — address of the library server (https://ppptools.library.happy-pc.ch)
  • API key — the upload key (masked; reveal with "show")

Without a valid key, the upload option is not available.

2. Upload content as a draft

Once a key is configured, a dropdown appears next to the Save button in the Manage area:

Manage → Save ▾ → Upload to Online Library

  • Available for snippets, slides and storylines — individually and in bulk (batch upload with a result summary).
  • Before upload, required fields are checked and code snippets are run through the code scanner.
  • The content is sent to the server as a ZIP (POST /api/v1/drafts); the server detects the type from the contained XML.
  • The content then appears in the admin panel under Drafts and goes through the normal approval process (see below).

Note

The content must be saved before uploading. If the key is invalid or expired, the server reports "Invalid or expired API key".


Reviewing Drafts (Submissions)

Uploaded drafts (snippets, slides, storylines and actions) appear in the admin panel under the Drafts tab.

Draft List

Column Description
Name Name of the submitted snippet
Category Category specified by the submitter
Date Submission date
Status Pending / Approved / Rejected

Reviewing a Draft

  1. Select a draft from the list
  2. Check the preview image and metadata
  3. View the code — the code scanner already checks for blocked patterns during upload
  4. Make a decision: Approve or Reject

Approving a Draft

  1. Select draft → click Approve
  2. Optionally: correct metadata (name, category, tags, description)
  3. Confirm → snippet appears immediately in the public gallery

What happens on approval?

  • Status changes from draft to published
  • The catalog cache is invalidated
  • The snippet is immediately visible to all PPPTools users in online mode

Rejecting a Draft

  1. Select draft → click Reject
  2. Optionally: enter a reason for the rejection
  3. The submitter receives no automatic notification (contact them manually)

Editing Items

Already published items can be edited in the admin panel:

Field Editable
Name
Description
Category
Tags
Tier (Free / Standard / Pro)
Status (published / hidden)
Type (snippet ↔ action …) ✅ (moves the folder + renames the XML, ID kept)
Parameter description (actions only)
Code ❌ (submit a new snippet)
Preview image ❌ (submit a new snippet)

Changing the type

The type dropdown lets you change an item's object type — e.g. turn a script accidentally uploaded as a snippet into an action after the fact. The server moves the item folder into the target type folder and renames the XML (snippet.xmlaction.xml); the ID is preserved.


Setting Item Status

Status Meaning
published Publicly visible in the gallery
draft Submitted, not yet approved
hidden Disabled, not visible in the gallery

Setting the Tier

Tier Display Description
free 🟢 Free Free of charge, no restrictions
licensed 🔵 Standard Content for licensed users
premium 🟠 Pro Extended premium content

In the current phase (Phase 1), all items are free. The Standard and Pro tiers are activated with the license model.


Invalidating the Cache

When approving a draft, the cache is invalidated automatically. To do it manually:

POST https://ppptools.library.happy-pc.ch/api/v1/admin/invalidate-cache
Header: X-Admin-Key: <API-KEY>

Or in the admin panel: click Clear Cache.


Library Structure on the Server

All items are stored on the Synology NAS:

/volume3/docker/ppptools_library/library/
├── snippets/{guid}/
│   ├── snippet.xml    — Metadata
│   ├── code.cs        — Roslyn script
│   └── preview.png    — Preview image
├── slides/{guid}/
│   ├── slide.xml
│   ├── slide.pptx
│   └── preview.png
└── storylines/{guid}/
    ├── storyline.xml
    ├── storyline.pptx   — self-contained (all slides merged)
    ├── preview.png      — first slide
    └── slide_NN.png     — preview per slide