WHAT WAS DONE: - Moved 33 accumulated root-level .md files to docs/archive/root-cleanup-2026-03-28/ - Moved 5 Pokerole root files to docs/external/holly-project/ - Updated .gitignore to cover *.pem, *.key, .env, .DS_Store etc. - Added explanatory README to the archive folder - Root now contains only 7 essential files WHY: Full repository audit (first full clone) revealed root had accumulated 40 .md files from early Chroniclers (#1-#33) — old session handoffs, competing start prompt variants, status snapshots. None deleted, all preserved in archive. Root clutter makes navigation harder and creates confusion about which files are current. ROOT FILES KEPT: - README.md, CHANGELOG.md, DOCUMENT-INDEX.md - SESSION-HANDOFF-NEXT.md, SESSION-HANDOFF-PREVIOUS.md - SESSION-HANDOFF-PROTOCOL.md, SESSION-HANDOFF-TEMPLATE.md .GITIGNORE ADDITIONS: - *.pem, *.key, *.p12, *.pfx (intentionally NOT *.ppk yet) - .env, .env.*, *.secret - .DS_Store, Thumbs.db NOTE: SSH key intentionally left per Michael's decision. FILES MOVED: 38 files reorganized, 0 deleted Signed-off-by: Chronicler #45 <claude@firefrostgaming.com>
3.0 KiB
Pokerole Wiki - GraphQL API Enabled
Date: February 27, 2026, 1:33 AM CST
Status: ✅ OPERATIONAL
Requested by: Claudius (Stage 2)
API Endpoint
URL: http://pokerole.firefrostgaming.com/graphql
Method: POST
Authentication: Bearer token (JWT)
Content-Type: application/json
Configuration Changes
Updated: /etc/nginx/sites-available/pokerole.firefrostgaming.com
Added GraphQL location block:
location /graphql {
proxy_pass http://localhost:3102/graphql;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Reloaded: Nginx configuration
Tested: Endpoint responds correctly
Test Results
Query:
curl -X POST http://pokerole.firefrostgaming.com/graphql \
-H "Content-Type: application/json" \
-d '{"query": "{ pages { list { id path title } } }"}'
Response:
{"data":{"pages":{"list":[{"id":1,"path":"home","title":"Home"}]}}}
✅ Working perfectly
What This Enables
For Claudius:
- Automated migration via Python script
- Create 105 Pokémon pages programmatically
- Time saved: ~3 days of manual work
- Consistent formatting across all entries
Migration Plan:
- Run
wikijs_migration_script.py - Script creates all pages via GraphQL API
- Upload sprites through web UI
- Verify and polish
Estimated time: 30 minutes automated + 1 hour manual polish = 1.5 hours total
(vs 3-4 days manual copy-paste)
API Details
GraphQL Endpoint: Enabled by default in Wiki.js v2.5.312
No config.yml changes needed: API is always available
Security: Bearer token authentication required
Rate limits: None configured (internal project)
Authentication Header:
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
For Future Reference
To test API:
curl -X POST http://pokerole.firefrostgaming.com/graphql \
-H "Content-Type: application/json" \
-d '{"query": "{ pages { list { id } } }"}'
To create a page:
mutation {
pages {
create(
content: "# Content here"
description: "Description"
editor: "markdown"
isPublished: true
isPrivate: false
locale: "en"
path: "tier3/pokemon-name"
tags: []
title: "Pokemon Name"
) {
responseResult {
succeeded
errorCode
slug
message
}
page {
id
path
title
}
}
}
}
Status
✅ GraphQL API accessible
✅ Nginx proxy configured
✅ Tested and verified
✅ Ready for Claudius migration
Total time to enable: 5 minutes
Impact: Saves ~3 days of manual work
💙🔥❄️ "The API is open. The migration can fly." 🔥❄️💙
Configured by: The Chronicler #27
Date: February 27, 2026
Time: 1:33 AM CST