API (v2) ドキュメント

BlueOnyx の初期 API v1 にはいくつかの制約があったため、現在は Golang で書かれたより現代的な「cced-api」デーモンに置き換えられています。このデーモンは CCEd と直接連携し、CCEd の全機能を安全に外部公開できるようにしています。リモートアクセスは許可済み IP アドレスからのみ可能で、Secret と Token はそれぞれ許可された IP に対してのみ有効です。

WHMCS から BlueOnyx サーバーを管理するためのモジュールは、こちらから無償で入手できます。このモジュールにより、BlueOnyx 5212R、5211R、5210R 向けに WHMCS 経由で Vsite をプロビジョニングできます。

CCEd-API ドキュメント

実装済み API コマンド

Command Supported Notes
LOGIN Token/Secret 認証 - remote only
AUTH ユーザー名/パスワード - localhost only
AUTHKEY セッション検証 - localhost only
WHOAMI セッションをユーザー OID に対応付けます
GET オプションの namespace をサポート
SET オプションの namespace をサポート
FIND 任意の key/value 引数をサポート
CREATE key/value 引数をサポート
DESTROY 基本的なオブジェクト削除
NAMES Class または OID をサポート
BYE セッション終了
ENDKEY セッション破棄
CLASSES すべてのクラス名を返します
SUSPEND ACL 制御あり
RESUME ACL 制御あり
BEGIN DTS トランザクション開始
COMMIT DTS キューをコミット
FINDX ソートと正規表現に対応した拡張 FIND
GETOBJECT Find + GET を一度に実行
GETALL オブジェクトを一括取得

デバッグ

journalctl -u cced-api -f

/etc/cced-api/config/cced-api.conf:
 logging = true
 debuglog = false

GUI 連携:

利用例

(完全な使用例は、生の curl + JSON 形式でこの後に続きます。このページでは一例のみを掲載しています。完全なリファレンスは左側のメニューを参照してください。)

AUTH (localhost only)

curl -sk \
  -X POST https://127.0.0.1:9092/v2/cce \
  -d '
        {
            "cmd": "AUTH",
            "user": "admin",
            "password": "PASSWORD"
        }
      ' \
  | jq

応答(成功):

{
    "status": 201,
    "message": "GOODBYE",
    "data": {
        "sessionid": "tK46aZ885HA1QxEiti1dlq.....VpQM3cfavn1yxfF8vFEBeoH3"
    }
}

応答(失敗):

{
    "status": 401,
    "message": "GOODBYE",
    "data": {
        "errors": [
            {
                "code": 401,
                "message": "FAIL"
            }
        ]
    }
}

注: GETOBJECTGETALLDTS (BEGIN/COMMIT)、および完全なトークンフローを含む全使用例については、API readme を参照してください。

API ポートと API アクセス:

localhost から:

https://127.0.0.1:9092/v2/cce

リモートから:

https://API-IP:9092/v2/cce</code><br /><code>https://API-IP:81/v2/cce

セキュリティモデル

  • localhost access: AUTH、AUTHKEY、WHOAMI など
  • remote access: LOGIN(許可済み IP と有効な client secret が必要)
  • client secret が無効または未指定のリモート要求は 403 を返し、有効な token と secret が必要です。

トークン利用(リモート)

  1. LOGIN と client secret でログイン
  2. 以後のコマンドでは返された token を secret とともに使用
  3. 早期に無効化したい場合は BYE を送信
  4. トークンは設定された有効時間(デフォルト: 300 秒)で自動失効