diff --git a/POKEROLE-GRAPHQL-API-ENABLED.md b/POKEROLE-GRAPHQL-API-ENABLED.md new file mode 100644 index 0000000..9bdc30e --- /dev/null +++ b/POKEROLE-GRAPHQL-API-ENABLED.md @@ -0,0 +1,151 @@ +# 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