Library Admin Guide
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
- Select a draft from the list
- Check the preview image and metadata
- View the code — the code scanner already checks for blocked patterns during upload
- Make a decision: Approve or Reject
Approving a Draft
- Select draft → click Approve
- Optionally: correct metadata (name, category, tags, description)
- Confirm → snippet appears immediately in the public gallery
What happens on approval?
- Status changes from
drafttopublished - The catalog cache is invalidated
- The snippet is immediately visible to all PPPTools users in online mode
Rejecting a Draft
- Select draft → click Reject
- Optionally: enter a reason for the rejection
- 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.xml ↔ action.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
Related pages
- Publish Flow — How users submit snippets
- Online Library — User perspective
- Security — Advanced Snippet Editor — Code scanner and trust dialog