Files
firefrost-operations-manual/POKEROLE-GRAPHQL-API-ENABLED.md
Claude 68672c45a2 feat: Enable GraphQL API for Pokerole Wiki
Added /graphql location block to Nginx configuration to expose
Wiki.js GraphQL API endpoint for automated content migration.

 Endpoint: http://pokerole.firefrostgaming.com/graphql
 Tested and verified working
 Ready for Claudius automated migration

Impact: Saves ~3 days of manual copy-paste work
Migration time: 30 min automated (vs 3-4 days manual)

Requested by: Claudius (Stage 2) - The Pattern Forger
Configured by: The Chronicler #27
2026-02-27 13:35:56 +00:00

152 lines
3.0 KiB
Markdown

# 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:
```nginx
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:**
```bash
curl -X POST http://pokerole.firefrostgaming.com/graphql \
-H "Content-Type: application/json" \
-d '{"query": "{ pages { list { id path title } } }"}'
```
**Response:**
```json
{"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:**
1. Run `wikijs_migration_script.py`
2. Script creates all pages via GraphQL API
3. Upload sprites through web UI
4. 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:**
```bash
curl -X POST http://pokerole.firefrostgaming.com/graphql \
-H "Content-Type: application/json" \
-d '{"query": "{ pages { list { id } } }"}'
```
**To create a page:**
```graphql
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