OpenCORE RPC
From Openpanel Documentation Wiki
This is an overview of the RPC calls implemented in opencore. For clarity, data has been transcribed as XML trees, but be aware that opencore currently only communicates to the outside world using JSON data.
Contents |
[edit]
bind
Creates a new session bound to a specific User object.
- id
- The user id
- password
- The user's plaintext password
[edit]
request
<dict id="header">
<string id="command">bind</string>
</dict>
<dict id="body">
<string id="id">admin@example.net</string>
<string id="password">foobar</string>
</dict>
[edit]
response
<dict id="header">
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
<integer id="errorid">0</integer>
<string id="error">OK</string>
</dict>
[edit]
getrecords
Fetch records out of the database. Note that calling this with an empty classid is currently possible but may be deprecated in the future.
- classid
- The requested class, or empty for all classes in context.
- parentid
- The uuid of the parent object, or empty for ROOT.
[edit]
request
<dict id="header">
<string id="command">getrecords</string>
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
</dict>
<dict id="body">
<string id="classid">User</string>
<string id="parentid">6e648b70-a5e3-4be9-339d-2d6846c4d5ff</string>
</dict>
[edit]
response
<dict id="header">
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
<integer id="errorid">0</integer>
<string id="error">OK</string>
</dict>
<dict id="body">
<dict id="data">
<dict id="User" type="class">
<dict id="admin@example.net" type="object">
<string id="password"/>
<string id="class">User</string>
<string id="uuid">1e873ae9-65f5-4449-429f-6f094147ac11</string>
<string id="parentid">6e648b70-a5e3-4be9-339d-2d6846c4d5ff</string>
<string id="id">admin@example.net</string>
<string id="metaid">admin@example.net</string>
<string id="childclasses"/>
</dict>
</dict>
<dict id="info">
<integer id="total">1</integer>
</dict>
</dict>
</dict>
[edit]
request 2
<dict id="header">
<string id="command">getrecords</string>
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
</dict>
<dict id="body">
<string id="classid">Domain</string>
</dict>
[edit]
response 2
<dict id="header">
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
<integer id="errorid">0</integer>
<string id="error">OK</string>
</dict>
<dict id="body">
<dict id="data">
<dict id="Domain">
<dict id="$prototype:master$">
<string id="class">Domain</string>
<string id="uuid">650ac76d-7a33-4567-a154-a6f36cf273e7</string>
<string id="id">$prototype:master$</string>
<string id="metaid">$prototype:master$</string>
<dict id="childclasses">
<integer id="DNSDomain">1</integer>
</dict>
</dict>
<dict id="lameass.net">
<string id="class">Domain</string>
<string id="uuid">0cc947cf-9454-4eab-70cf-bf4c1e637430</string>
<string id="ownerid">6e648b70-a5e3-4be9-339d-2d6846c4d5ff</string>
<string id="id">lameass.net</string>
<string id="metaid">lameass.net</string>
<string id="childclasses"/>
</dict>
</dict>
<dict id="info">
<integer id="total">2</integer>
</dict>
</dict>
</dict>
[edit]
getrecord
Fetch a single record out of the database.
- classid
- The requested class, or empty for all classes in context.
- parentid
- The uuid of the parent object, or empty for ROOT.
[edit]
request
<dict id="header">
<string id="command">getrecord</string>
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
</dict>
<dict id="body">
<string id="classid">Domain</string>
<string id="objectid">lameass.net</string>
</dict>
[edit]
request (by uuid only)
<dict id="header">
<string id="command">getrecord</string>
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
</dict>
<dict id="body">
<string id="objectid">0cc947cf-9454-4eab-70cf-bf4c1e637430</string>
</dict>
[edit]
response
<dict id="header">
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
<integer id="errorid">0</integer>
<string id="error">OK</string>
</dict>
<dict id="body">
<dict id="data">
<dict id="object">
<dict id="Domain">
<string id="uuid">0cc947cf-9454-4eab-70cf-bf4c1e637430</string>
<string id="version">1</string>
<string id="ownerid">6e648b70-a5e3-4be9-339d-2d6846c4d5ff</string>
<string id="id">lameass.net</string>
<string id="metaid">lameass.net</string>
</dict>
</dict>
<string id="layout">default</string>
</dict>
</dict>
[edit]
create
Create a new instance of an object.
- classid
- The requested class.
- parentid
- The uuid of the parent object, or empty for root.
- objectid
- The requested metaid (if the class indexing is set to manual)
[edit]
request
<dict id="header">
<string id="command">create</string>
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
</dict>
<dict id="body">
<string id="objectid">lameass.net</string>
<string id="parentid">0cc947cf-9454-4eab-70cf-bf4c1e637430</string>
<string id="classid">DNSDomain</string>
<dict id="data">
<string id="type">master</string>
<string id="primaryns">10.0.0.1</string>
<string id="secondaryns">10.0.0.2</string>
<string id="admin">hostmaster@lameass.net</string>
</dict>
</dict>
[edit]
response
<dict id="header">
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
<integer id="errorid">0</integer>
<string id="error">OK</string>
</dict>
<dict id="body">
<dict id="data">
<string id="objid">1baf7671-4abf-4058-7314-eebc2d59328c</string>
</dict>
</dict>
[edit]
update
Update an instance of an object.
[edit]
request
<dict id="header">
<string id="command">update</string>
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
</dict>
<dict id="body">
<string id="classid">DNSDomain</string>
<string id="objectid">1baf7671-4abf-4058-7314-eebc2d59328c</string>
<dict id="data">
<string id="primaryns">10.1.1.1</string>
<string id="secondaryns">10.1.1.2</string>
</dict>
</dict>
[edit]
response
<dict id="header">
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
<integer id="errorid">0</integer>
<string id="error">OK</string>
</dict>
[edit]
delete
Delete an object.
- classid
- The object's class.
- parentid
- The uuid of the parent object (only needed if objectid is meta)
- objectid
- The uuid or metaid of an object.
[edit]
request
<dict id="header">
<string id="command">delete</string>
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
</dict>
<dict id="body">
<string id="classid">DNSDomain</string>
<string id="objectid">1baf7671-4abf-4058-7314-eebc2d59328c</string>
</dict>
[edit]
response
<dict id="header">
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
<integer id="errorid">0</integer>
<string id="error">OK</string>
</dict>
[edit]
ping
Keep session alive.
[edit]
request
<dict id="header">
<string id="command">ping</string>
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
</dict>
[edit]
response
<dict id="header">
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
<integer id="errorid">0</integer>
<string id="error">OK</string>
</dict>
[edit]
classinfo
Get meta-information about a class.
- classid
- The class to inspect.
[edit]
request
<dict id="header">
<string id="command">classinfo</string>
<string id="session_id">5b9d38c5-6d8f-4c8d-9b15-32e30ecb3a91</string>
</dict>
<dict id="body">
<string id="classid">Domain</string>
</dict>
[edit]
response
<dict id="header">
<string id="session_id">54a9fef8-06ca-40de-061b-71726fee570d</string>
<integer id="errorid">0</integer>
<string id="error">OK</string>
</dict>
<dict id="body">
<dict id="data">
<dict id="structure">
<dict id="parameters">
<dict id="id">
<string id="description">Domain name</string>
<string id="type">string</string>
<bool id="enabled">true</bool>
<bool id="visible">true</bool>
<bool id="required">false</bool>
<string id="regexp">^([a-z0-9][a-z0-9-]*)(\.[a-z0-9][a-z0-9-]*)+$</string>
<string id="example"/>
<string id="default"/>
<string id="tooltip"/>
</dict>
</dict>
<string id="methods"/>
</dict>
<dict id="capabilities">
<bool id="create">true</bool>
<bool id="delete">true</bool>
<bool id="update">true</bool>
<bool id="getinfo">false</bool>
</dict>
<string id="enums"/>
<dict id="class">
<string id="id">Domain</string>
<string id="uuid">78c10b86-2250-4327-9978-0470fb41ad0c</string>
<string id="shortname">domain</string>
<string id="title">Domain</string>
<string id="menuclass"/>
<string id="description">A collection of domain-related services</string>
<string id="explanation"/>
<integer id="sortindex">20</integer>
<integer id="version">1</integer>
<string id="magicdelimiter"/>
<string id="parentrealm"/>
<string id="prototype"/>
<string id="singleton"/>
<string id="metatype">none</string>
<string id="metabase"/>
<string id="metadescription"/>
<string id="metachildren"/>
<string id="indexing">manual</string>
</dict>
<dict id="info">
<dict id="children">
<dict id="59417a58-d793-4ec7-a909-a9acb0236971">
<string id="id">Domain:Vhost</string>
<string id="shortname">vhost</string>
<string id="menuclass"/>
<string id="description">Virtual host configuration</string>
</dict>
<dict id="01a3286f-f41e-4964-89b7-4637539bfec8">
<string id="id">Domain:HTTPForward</string>
<string id="shortname">forward</string>
<string id="menuclass"/>
<string id="description">HTTP Forwarding</string>
</dict>
<dict id="660fecfd-bde5-4358-ac62-20dcbbf3b207">
<string id="id">Domain:Alias</string>
<string id="shortname">alias</string>
<string id="menuclass"/>
<string id="description">A secondary aliased domain</string>
</dict>
<dict id="17302eb3-bee7-4827-b0c6-4812d45b8c4d">
<string id="id">Meta:DNSDomain</string>
<string id="shortname">dnsdomain</string>
<string id="menuclass"/>
<string id="description">DNS zone</string>
</dict>
<dict id="4629fca4-5672-4273-bc92-b9ad863c9028">
<string id="id">DNSDomain:Master</string>
<string id="shortname">masterdomain</string>
<string id="menuclass"/>
<string id="description">DNS Master zone</string>
</dict>
<dict id="cb7272f4-5fdb-4ec9-9cb2-ca30b925c381">
<string id="id">DNSDomain:Slave</string>
<string id="shortname">slavedomain</string>
<string id="menuclass"/>
<string id="description">DNS Slave zone</string>
</dict>
<dict id="82c1223c-0667-4a7f-8a19-ff42588c9360">
<string id="id">FTP:Master</string>
<string id="shortname">ftp-user</string>
<string id="menuclass"/>
<string id="description">FTP master account</string>
</dict>
<dict id="b34b170d-2e8b-4c16-ae9a-a7009fc427ae">
<string id="id">Mail</string>
<string id="shortname">email</string>
<string id="menuclass"/>
<string id="description">Email domain configuration</string>
</dict>
</dict>
</dict>
</dict>
</dict>
[edit]
getreferences
Resolve references.
- refstring
- The reference string in the form "classname/fieldname".
[edit]
request
<dict id="header">
<string id="command">getreferences</string>
<string id="session_id">39eec423-840f-405f-757a-35e2442c6f20</string>
</dict>
<dict id="body">
<string id="refstring">Network:Interface/address</string>
</dict>
[edit]
response
<dict id="header">
<string id="session_id">39eec423-840f-405f-757a-35e2442c6f20</string>
<integer id="errorid">0</integer>
<string id="error">OK</string>
</dict>
<dict id="body">
<dict id="data">
<string id="dummy0">127.0.0.8</string>
</dict>
</dict>
