- Complete API coverage: Example, Auth, Database, User, Misc, and
- Lineage routers
-
-
- Quick Start: Expand any section below to test
- endpoints. Public endpoints work immediately. Auth-required
- endpoints need valid tokens.
+ }
+ >
+
+
+
+
+ tRPC API Testing Dashboard
+
+
+ Complete API coverage: Example, Auth, Database, User, Misc, and
+ Lineage routers
+
+
+
+ Quick Start: Expand any section below to test
+ endpoints. Public endpoints work immediately. Auth-required
+ endpoints need valid tokens.
+
+
-
-
-
- {(section) => {
- const isExpanded = () => expandedSections().has(section.name);
+
+
+ {(section) => {
+ const isExpanded = () => expandedSections().has(section.name);
- return (
-
- {/* Section Header */}
-
+ return (
+
+ {/* Section Header */}
+
- {/* Section Content */}
-
-
-
- {(endpoint) => {
- const key = `${endpoint.router}.${endpoint.procedure}`;
- const hasInput = endpoint.sampleInput !== undefined;
- const displayInput = () => {
- if (inputEdits()[key]) {
- return inputEdits()[key];
- }
- // Handle primitive values (string, number, boolean)
- if (typeof endpoint.sampleInput === "string") {
- return `"${endpoint.sampleInput}"`;
- }
- if (
- typeof endpoint.sampleInput === "number" ||
- typeof endpoint.sampleInput === "boolean"
- ) {
- return String(endpoint.sampleInput);
- }
- // Handle objects and arrays
- return JSON.stringify(
- endpoint.sampleInput,
- null,
- 2
- );
- };
+ {/* Section Content */}
+
+
+
+ {(endpoint) => {
+ const key = `${endpoint.router}.${endpoint.procedure}`;
+ const hasInput =
+ endpoint.sampleInput !== undefined;
+ const displayInput = () => {
+ if (inputEdits()[key]) {
+ return inputEdits()[key];
+ }
+ // Handle primitive values (string, number, boolean)
+ if (typeof endpoint.sampleInput === "string") {
+ return `"${endpoint.sampleInput}"`;
+ }
+ if (
+ typeof endpoint.sampleInput === "number" ||
+ typeof endpoint.sampleInput === "boolean"
+ ) {
+ return String(endpoint.sampleInput);
+ }
+ // Handle objects and arrays
+ return JSON.stringify(
+ endpoint.sampleInput,
+ null,
+ 2
+ );
+ };
- return (
-
- {/* Endpoint Header */}
-
-
-
-
- {endpoint.name}
-
-
-
- 🔒 Auth Required
+ return (
+
+ {/* Endpoint Header */}
+
+
+
+
+ {endpoint.name}
+
+
+
+ 🔒 Auth Required
+
+
+
+
+ 👑 Admin Only
+
+
+
+
+ {endpoint.description}
+
+
+
+ {key}
+
+
+ {endpoint.method === "query"
+ ? "GET"
+ : "POST"}
-
-
-
- 👑 Admin Only
-
-
-
-
- {endpoint.description}
-
-
-
- {key}
-
-
- {endpoint.method === "query"
- ? "GET"
- : "POST"}
-
+
+
-
+
+ {/* Input Editor */}
+
+
+
+
+
+
+ {/* Error Display */}
+
+
+
+ Error:
+
+
+ {errors()[key]}
+
+
+
+
+ {/* Results Display */}
+
+
+
+ ✓ Response:
+
+
+ {JSON.stringify(
+ results()[key],
+ null,
+ 2
+ )}
+
+
+
+ );
+ }}
+
+
+
+
+ );
+ }}
+
+
- {/* Input Editor */}
-
-
-
-
-
+ {/* Footer Instructions */}
+
+
Testing Guide
- {/* Error Display */}
-
-
-
- Error:
-
-
- {errors()[key]}
-
-
-
+
+
+
+ 🟢 No Auth Required
+
+
+ -
+ Example Router - Hello endpoint
+
+ -
+ Lineage JSON Service - All 6 endpoints
+ work immediately
+
+ -
+ Database - All endpoints (comments,
+ posts, users, reactions, likes)
+
+ -
+ Misc - Downloads, S3 operations, password
+ utilities
+
+ -
+ Lineage Misc - Offline Secret, Get
+ Opponents
+
+ -
+ Lineage PvP - Get Opponents
+
+
+
- {/* Results Display */}
-
-
-
- ✓ Response:
-
-
- {JSON.stringify(results()[key], null, 2)}
-
-
-
-
- );
- }}
-
-
-
-
- );
- }}
-
-
+
+
🟡 Auth Required
+
+ These need valid JWT tokens from login/registration:
+
+
+ -
+ Example Router - Get Profile
+
+ -
+ User Router - All endpoints (profile
+ updates, password, account deletion)
+
+ -
+ Lineage Auth - Email Login, Refresh Token
+
+ -
+ Lineage Database - Get Credentials,
+ Deletion endpoints
+
+
+
- {/* Footer Instructions */}
-
-
Testing Guide
+
+
🔴 Admin Required
+
+ Maintenance endpoints require admin privileges (userIDToken
+ cookie with ADMIN_ID).
+
+
+ -
+ Example Router - Admin Dashboard
+
+ -
+ Lineage Maintenance - Find Loose
+ Databases, Cleanup Expired
+
+
+
-
-
-
🟢 No Auth Required
-
- -
- Example Router - Hello endpoint
-
- -
- Lineage JSON Service - All 6 endpoints work
- immediately
-
- -
- Database - All endpoints (comments, posts,
- users, reactions, likes)
-
- -
- Misc - Downloads, S3 operations, password
- utilities
-
- -
- Lineage Misc - Offline Secret, Get
- Opponents
-
- -
- Lineage PvP - Get Opponents
-
-
-
+
+
+ 📝 Typical Workflows
+
+
+ -
+ Test public endpoints: Start with Example
+ Hello, Lineage JSON Service, or Database queries
+
+ -
+ OAuth flow: Use Auth router callbacks
+ with OAuth codes from GitHub/Google
+
+ -
+ Email auth flow: Register → verify email
+ → login → use JWT
+
+ -
+ Blog/Project management: Create posts →
+ add comments/likes → upload images via S3
+
+ -
+ Lineage game data: Fetch JSON data →
+ register character → find PvP opponents
+
+
+
-
-
🟡 Auth Required
-
- These need valid JWT tokens from login/registration:
-
-
- -
- Example Router - Get Profile
-
- -
- User Router - All endpoints (profile
- updates, password, account deletion)
-
- -
- Lineage Auth - Email Login, Refresh Token
-
- -
- Lineage Database - Get Credentials,
- Deletion endpoints
-
-
-
-
-
-
🔴 Admin Required
-
- Maintenance endpoints require admin privileges (userIDToken
- cookie with ADMIN_ID).
-
-
- -
- Example Router - Admin Dashboard
-
- -
- Lineage Maintenance - Find Loose Databases,
- Cleanup Expired
-
-
-
-
-
-
📝 Typical Workflows
-
- -
- Test public endpoints: Start with Example
- Hello, Lineage JSON Service, or Database queries
-
- -
- OAuth flow: Use Auth router callbacks with
- OAuth codes from GitHub/Google
-
- -
- Email auth flow: Register → verify email →
- login → use JWT
-
- -
- Blog/Project management: Create posts → add
- comments/likes → upload images via S3
-
- -
- Lineage game data: Fetch JSON data →
- register character → find PvP opponents
-
-
-
-
-
-
- Note: Some endpoints require specific setup
- (e.g., OAuth codes, existing database records, valid S3 keys).
- Check the sample input to understand what data each endpoint
- expects.
-
+
+
+ Note: Some endpoints require specific setup
+ (e.g., OAuth codes, existing database records, valid S3
+ keys). Check the sample input to understand what data each
+ endpoint expects.
+
+
-
-
-
+
+
+ >
);
}