Skip to content

me policies: /me/policies CRUD コマンド対応 #86

Description

@miya0001

概要

GeonicDB に /me/policies エンドポイントが追加された(PR #764)。user ロールが自分専用の XACML ポリシーを作成・管理し、自分の API キー / OAuth クライアントにバインドできる。CLI 側で対応コマンドを実装する。

API 仕様

Method Path 説明
GET /me/policies 自分が作成したポリシー一覧(scope=personal)
POST /me/policies ポリシー作成(priority=100 固定、target 必須)
GET /me/policies/{policyId} ポリシー取得
PATCH /me/policies/{policyId} ポリシー部分更新
DELETE /me/policies/{policyId} ポリシー削除

ポリシー作成 body 例

{
  "policyId": "my-readonly-policy",
  "target": {
    "subjects": [{"attributeId": "role", "matchValue": "api_key"}]
  },
  "rules": [
    {
      "ruleId": "permit-get",
      "effect": "Permit",
      "target": {
        "actions": [{"attributeId": "method", "matchValue": "GET"}],
        "resources": [{"attributeId": "path", "matchValue": "/v2/**"}]
      }
    }
  ]
}

制約:

  • priority は 100 に固定(指定不可)
  • scope = 'personal'(テナント全体に影響しない)
  • target 必須
  • データ API パスのみ(/admin/**, /me/** は不可)

CLI コマンド案

# 一覧
geonic me policies list

# 作成(JSON ファイルまたは stdin 入力)
geonic me policies create --file policy.json

# 取得
geonic me policies get <policyId>

# 更新
geonic me policies update <policyId> --file patch.json

# 削除
geonic me policies delete <policyId>

ユーザーフロー(典型的な使用例)

# 1. readonly ポリシーを作成
geonic me policies create --file readonly-policy.json

# 2. API キー作成時にポリシーをバインド
geonic me api-keys create --name "readonly-key" --allow-origin "*" --policy-id my-readonly-policy

# 3. API キーで GeonicDB にアクセス → GET のみ許可される

参考

  • GeonicDB docs/AUTH.md — §Self-Service Policy Management 参照
  • GeonicDB docs/INSTRUCTION.md — §14.9 /me/policies セクション参照
  • OpenAPI: /me/policies および /me/policies/{policyId}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions