Files
dualfroz 2e78dfef1e Validate upload size against the node limit before uploading
Expose the node's upload_size on the client server resource and reject
files over it in the file manager before any bytes are sent.
2026-10-14 18:16:57 +02:00

656 lines
27 KiB
JSON

[
{
"request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001?include=egg,subusers",
"status": 200,
"body": {
"object": "server",
"attributes": {
"server_owner": false,
"identifier": "5e7f0001",
"__deprecated_uuid_short": "5e7f0001",
"server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae",
"internal_id": 1,
"uuid": "5e7f0001-0000-4000-8000-000000000001",
"name": "Survival",
"node": "node-alpha",
"is_node_under_maintenance": false,
"upload_size": 100,
"sftp_details": {
"ip": "alpha.example.test",
"port": 2022
},
"description": "Main survival world",
"limits": {
"memory": 2048,
"swap": 512,
"disk": 10240,
"io": 500,
"cpu": 200,
"threads": "0-3",
"oom_disabled": true
},
"invocation": "java -Xms128M -Xmx2048M -jar paper.jar",
"docker_image": "ghcr.io/pterodactyl/yolks:java_21",
"egg_features": [
"eula",
"java_version"
],
"egg_tags": [
"minecraft",
"premium"
],
"feature_limits": {
"databases": 5,
"allocations": 5,
"backups": 5
},
"status": null,
"is_suspended": false,
"is_installing": false,
"is_transferring": false,
"skip_scripts": false,
"relationships": {
"allocations": {
"object": "list",
"data": [
{
"object": "allocation",
"attributes": {
"id": 1,
"ip": "192.0.2.10",
"ip_alias": "play.example.test",
"port": 25565,
"notes": "Primary <game> port",
"is_default": true
}
},
{
"object": "allocation",
"attributes": {
"id": 2,
"ip": "192.0.2.10",
"ip_alias": null,
"port": 25566,
"notes": "Query/RCON",
"is_default": false
}
}
]
},
"variables": {
"object": "list",
"data": [
{
"object": "egg_variable",
"attributes": {
"name": "Server Jar File",
"description": "The name of the server jarfile to run.",
"env_variable": "SERVER_JARFILE",
"default_value": "server.jar",
"server_value": "paper.jar",
"is_editable": true,
"rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/"
}
},
{
"object": "egg_variable",
"attributes": {
"name": "Build Number",
"description": "The build to download, or \"latest\".",
"env_variable": "BUILD_NUMBER",
"default_value": "latest",
"server_value": null,
"is_editable": false,
"rules": "required|string|max:20"
}
}
]
},
"egg": {
"object": "egg",
"attributes": {
"uuid": "e9900001-0000-4000-8000-000000000001",
"name": "Paper"
}
},
"subusers": {
"object": "list",
"data": [
{
"object": "server_subuser",
"attributes": {
"uuid": "00000000-0000-4000-8000-000000000003",
"identifier": "user_aaaaaaaaabaabaaaaaaaaaaaam",
"username": "helper",
"email": "helper@example.test",
"image": "https://gravatar.com/avatar/db133fd5a01229dc12009a42eaa2e3c3",
"2fa_enabled": false,
"created_at": "2026-01-02T03:04:05+00:00",
"permissions": [
"websocket.connect",
"control.console",
"control.start",
"allocation.read",
"startup.read",
"user.read",
"database.read",
"database.view_password",
"backup.read",
"schedule.read",
"activity.read",
"file.read"
]
}
},
{
"object": "server_subuser",
"attributes": {
"uuid": "00000000-0000-4000-8000-000000000004",
"identifier": "user_aaaaaaaaabaabaaaaaaaaaaaaq",
"username": "limited",
"email": "limited@example.test",
"image": "https://gravatar.com/avatar/6a005a5825ef8aa17b476a64d40e7aab",
"2fa_enabled": false,
"created_at": "2026-01-02T03:04:05+00:00",
"permissions": [
"websocket.connect",
"control.console",
"database.read",
"database.create",
"database.update",
"backup.read",
"schedule.read",
"activity.read",
"file.read"
]
}
}
]
}
}
},
"meta": {
"is_server_owner": false,
"user_permissions": [
"*",
"admin.websocket.errors",
"admin.websocket.install",
"admin.websocket.transfer"
]
}
}
},
{
"request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001/activity?include=actor",
"status": 200,
"body": {
"object": "list",
"data": [
{
"object": "activity_log",
"attributes": {
"id": "356a192b7913b04c54574d18c28d46e6395428ab",
"batch": null,
"event": "admin:server.build",
"is_api": false,
"ip": "203.0.113.5",
"description": null,
"properties": {
"name": "Survival"
},
"has_additional_metadata": false,
"timestamp": "2026-01-02T03:05:05+00:00",
"relationships": {
"actor": {
"object": "user",
"attributes": {
"uuid": "00000000-0000-4000-8000-000000000001",
"identifier": "user_aaaaaaaaabaabaaaaaaaaaaaae",
"username": "admin",
"email": "admin@example.test",
"image": "https://gravatar.com/avatar/51965088c5db83c3fd307f308d25198a",
"2fa_enabled": false,
"created_at": "2026-01-02T03:04:05+00:00"
}
}
}
}
},
{
"object": "activity_log",
"attributes": {
"id": "ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4",
"batch": null,
"event": "server:power.start",
"is_api": false,
"ip": "198.51.100.8",
"description": null,
"properties": {},
"has_additional_metadata": false,
"timestamp": "2026-01-02T03:09:05+00:00",
"relationships": {
"actor": {
"object": "user",
"attributes": {
"uuid": "00000000-0000-4000-8000-000000000003",
"identifier": "user_aaaaaaaaabaabaaaaaaaaaaaam",
"username": "helper",
"email": "helper@example.test",
"image": "https://gravatar.com/avatar/db133fd5a01229dc12009a42eaa2e3c3",
"2fa_enabled": false,
"created_at": "2026-01-02T03:04:05+00:00"
}
}
}
}
},
{
"object": "activity_log",
"attributes": {
"id": "c1dfd96eea8cc2b62785275bca38ac261256e278",
"batch": null,
"event": "server:file.delete",
"is_api": false,
"ip": "198.51.100.7",
"description": null,
"properties": {
"directory": "/plugins/old/",
"files": [
"old.jar",
"older.jar"
],
"count": 2
},
"has_additional_metadata": true,
"timestamp": "2026-01-02T03:10:05+00:00",
"relationships": {
"actor": {
"object": "user",
"attributes": {
"uuid": "00000000-0000-4000-8000-000000000002",
"identifier": "user_aaaaaaaaabaabaaaaaaaaaaaai",
"username": "owner",
"email": "owner@example.test",
"image": "https://gravatar.com/avatar/f17712239715b86f1dfd9ba550b7f607",
"2fa_enabled": false,
"created_at": "2026-01-02T03:04:05+00:00"
}
}
}
}
},
{
"object": "activity_log",
"attributes": {
"id": "0ade7c2cf97f75d009975f4d720d1fa6c19f4897",
"batch": "ba7c0009-0000-4000-8000-000000000009",
"event": "server:backup.start",
"is_api": false,
"ip": "203.0.113.5",
"description": null,
"properties": {
"name": "Nightly",
"locked": true
},
"has_additional_metadata": true,
"timestamp": "2026-01-02T03:13:05+00:00",
"relationships": {
"actor": {
"object": "user",
"attributes": {
"uuid": "00000000-0000-4000-8000-000000000001",
"identifier": "user_aaaaaaaaabaabaaaaaaaaaaaae",
"username": "admin",
"email": "admin@example.test",
"image": "https://gravatar.com/avatar/51965088c5db83c3fd307f308d25198a",
"2fa_enabled": false,
"created_at": "2026-01-02T03:04:05+00:00"
}
}
}
}
},
{
"object": "activity_log",
"attributes": {
"id": "b1d5781111d84f7b3fe45a0852e59758cd7a87e5",
"batch": null,
"event": "server:console.command",
"is_api": false,
"ip": "198.51.100.9",
"description": null,
"properties": {
"command": "say <hi> & \"bye\""
},
"has_additional_metadata": false,
"timestamp": "2026-01-02T03:14:05+00:00",
"relationships": {
"actor": {
"object": "user",
"attributes": {
"uuid": "00000000-0000-4000-8000-000000000004",
"identifier": "user_aaaaaaaaabaabaaaaaaaaaaaaq",
"username": "limited",
"email": "limited@example.test",
"image": "https://gravatar.com/avatar/6a005a5825ef8aa17b476a64d40e7aab",
"2fa_enabled": false,
"created_at": "2026-01-02T03:04:05+00:00"
}
}
}
}
}
],
"meta": {
"pagination": {
"total": 5,
"count": 5,
"per_page": 25,
"current_page": 1,
"total_pages": 1,
"links": {}
}
}
}
},
{
"request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001/databases?include=password",
"status": 200,
"body": {
"object": "list",
"data": [
{
"object": "server_database",
"attributes": {
"id": "eV8y0jg6",
"host": {
"address": "10.0.0.5",
"port": 3306
},
"name": "s1_main",
"username": "u1_mainuser",
"connections_from": "%",
"max_connections": 10,
"relationships": {
"password": {
"object": "database_password",
"attributes": {
"password": "Main-Pa$$word/1"
}
}
}
}
},
{
"object": "server_database",
"attributes": {
"id": "kEjgP8V2",
"host": {
"address": "10.0.0.5",
"port": 3306
},
"name": "s1_logs",
"username": "u1_logsuser",
"connections_from": "10.0.0.%",
"max_connections": 0,
"relationships": {
"password": {
"object": "database_password",
"attributes": {
"password": "Logs-Pa$$word\\2"
}
}
}
}
}
]
}
},
{
"request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003",
"status": 200,
"body": {
"object": "server",
"attributes": {
"server_owner": true,
"identifier": "5e7f0003",
"__deprecated_uuid_short": "5e7f0003",
"server_identifier": "serv_lz7qaayaabaabaaaaaaaaaaaam",
"internal_id": 3,
"uuid": "5e7f0003-0000-4000-8000-000000000003",
"name": "Admin Lab",
"node": "node-beta",
"is_node_under_maintenance": false,
"upload_size": 256,
"sftp_details": {
"ip": "beta.example.test",
"port": 2222
},
"description": "Testing ground",
"limits": {
"memory": 512,
"swap": -1,
"disk": 1024,
"io": 10,
"cpu": 50,
"threads": null,
"oom_disabled": true
},
"invocation": "java -jar server.jar",
"docker_image": "ghcr.io/pterodactyl/yolks:java_21",
"egg_features": [
"eula",
"java_version"
],
"egg_tags": [
"minecraft",
"premium"
],
"feature_limits": {
"databases": 1,
"allocations": 1,
"backups": 1
},
"status": null,
"is_suspended": false,
"is_installing": false,
"is_transferring": false,
"skip_scripts": false,
"relationships": {
"allocations": {
"object": "list",
"data": [
{
"object": "allocation",
"attributes": {
"id": 8,
"ip": "198.51.100.20",
"ip_alias": null,
"port": 30001,
"notes": null,
"is_default": true
}
}
]
},
"variables": {
"object": "list",
"data": [
{
"object": "egg_variable",
"attributes": {
"name": "Server Jar File",
"description": "The name of the server jarfile to run.",
"env_variable": "SERVER_JARFILE",
"default_value": "server.jar",
"server_value": null,
"is_editable": true,
"rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/"
}
},
{
"object": "egg_variable",
"attributes": {
"name": "Build Number",
"description": "The build to download, or \"latest\".",
"env_variable": "BUILD_NUMBER",
"default_value": "latest",
"server_value": null,
"is_editable": false,
"rules": "required|string|max:20"
}
}
]
}
}
},
"meta": {
"is_server_owner": true,
"user_permissions": [
"*",
"admin.websocket.errors",
"admin.websocket.install",
"admin.websocket.transfer"
]
}
}
},
{
"request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003/backups",
"status": 200,
"body": {
"object": "list",
"data": [],
"meta": {
"backup_count": 0,
"pagination": {
"total": 0,
"count": 0,
"per_page": 20,
"current_page": 1,
"total_pages": 1,
"links": {}
}
}
}
},
{
"request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003/schedules",
"status": 200,
"body": {
"object": "list",
"data": []
}
},
{
"request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003/users",
"status": 200,
"body": {
"object": "list",
"data": []
}
},
{
"request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003/network/allocations",
"status": 200,
"body": {
"object": "list",
"data": [
{
"object": "allocation",
"attributes": {
"id": 8,
"ip": "198.51.100.20",
"ip_alias": null,
"port": 30001,
"notes": null,
"is_default": true
}
}
]
}
},
{
"request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003/startup",
"status": 200,
"body": {
"object": "list",
"data": [
{
"object": "egg_variable",
"attributes": {
"name": "Server Jar File",
"description": "The name of the server jarfile to run.",
"env_variable": "SERVER_JARFILE",
"default_value": "server.jar",
"server_value": null,
"is_editable": true,
"rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/"
}
},
{
"object": "egg_variable",
"attributes": {
"name": "Build Number",
"description": "The build to download, or \"latest\".",
"env_variable": "BUILD_NUMBER",
"default_value": "latest",
"server_value": null,
"is_editable": false,
"rules": "required|string|max:20"
}
}
],
"meta": {
"startup_command": "java -jar server.jar",
"docker_images": {
"Java 21": "ghcr.io/pterodactyl/yolks:java_21",
"Java 17": "ghcr.io/pterodactyl/yolks:java_17"
},
"raw_startup_command": "java -jar {{SERVER_JARFILE}}"
}
}
},
{
"request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003/databases",
"status": 200,
"body": {
"object": "list",
"data": [
{
"object": "server_database",
"attributes": {
"id": "exjN1nQN",
"host": {
"address": "10.0.0.5",
"port": 3306
},
"name": "s3_lab",
"username": "u3_labuser",
"connections_from": "%",
"max_connections": null
}
}
]
}
},
{
"request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003/activity",
"status": 200,
"body": {
"object": "list",
"data": [],
"meta": {
"pagination": {
"total": 0,
"count": 0,
"per_page": 25,
"current_page": 1,
"total_pages": 1,
"links": {}
}
}
}
}
]