dragoraapi
v1.0.0
Published
Official Dragora panel API client for Node.js. Supports user (dlpu_) and admin (dpla_) API keys.
Maintainers
Readme
dragoraapi (Node.js)
Official Dragora panel API client for Node.js. Authenticate with a Dragora
API key (dlpu_... for users, dpla_... for admins) or a session token.
Install
npm install dragoraapiUsage
const { DragoraAPI } = require('dragoraapi');
// Use an API key — no session_key needed.
const api = new DragoraAPI({
url: 'http://localhost:8050', // your panel URL
apiKey: 'dlpu_your-user-api-key',
});
// or a session token
const s = new DragoraAPI({
url: 'http://localhost:8050',
token: '<session-token>',
sessionKey: '<session-key>',
});API keys
// Create a new key (returns plaintext once)
await api.createApiKey('my-bot', { admin: true, expires_days: 30 });
// => { token: 'dpla_...', api_key: {...} }
// List your keys (masked)
await api.listApiKeys();
// Admin: list every key
await api.listAllApiKeys();
// Revoke
await api.revokeApiKey(id);Servers & resources
await api.servers();
await api.server(10);
await api.serverPower(10, 'start'); // start | stop | restart | kill
await api.serverConsole(10, 'say hello');
await api.serverLogs(10);
await api.files(10, '/plugins');
await api.readFile(10, 'server.properties');
await api.writeFile(10, 'server.properties', '...');
await api.databases(10);
await api.createDatabase(10, { database_name: 'web', password: 'x', database_host_id: 1 });
// Admin-only
await api.adminStats();
await api.adminUsers();Errors
Non-2xx responses throw an Error with a .status property:
try {
await api.adminStats();
} catch (e) {
console.log(e.status, e.message); // 403 ...
}Keys
dlpu_= user-scoped API keydpla_= admin-scoped API key (only valid for admin users; grants access to/panel/admin/*and/panel/nodes/*endpoints)
License
MIT
