API (v2) ドキュメント

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

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

FOSSBilling から BlueOnyx サーバーを管理するためのモジュールは、こちらから無償で入手できます。このモジュールにより、BlueOnyx 5212R、5211R、5210R 向けに FOSSBilling 経由で 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"
            }
        ]
    }
}

注: GETOBJECT、GETALL、DTS (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 秒)で自動失効