add_api_key_scope の使用例を探しています

皆様、こんにちは。

Plugin::Instance のこのメソッドについて作業を進めています:discourse/lib/plugin/instance.rb at 06c60b017c86ddab489fd3d30c951c10b5c4d281 · ayampenyetan/discourse · GitHub

Discourse のコードベースや GitHub 上でこのメソッドの既存の利用例を検索してみましたが、パブリックにアクセス可能なコードの範囲では、テストケース以外で実際に使用されているようには見えませんでした。

以下の点についてご教示いただけますでしょうか。

  • プラグイン内でこのメソッドを呼び出せるように、Plugin::Instance のインスタンスを取得する正しい方法は何か。
  • 上記のメソッドを呼び出す適切なタイミングは何か。プラグイン内で新しいエンドポイントを登録する場合、その呼び出しはエンドポイントの登録後に行うべきか、それとも after_initialize の前か中に行うべきか。
  • 以下のコードはスコープを登録しているように見えるが、そのスコープを持つ管理者用 API キーで登録したエンドポイントにアクセスすると、アクションが見つからないというエラーが発生する。一方、すべてのスコープを持つ管理者用 API キーでアクセスするとエンドポイントは正常に動作する。なぜこのように動作しないのか、何が間違っているのか。
  • actionsurls エントリを追加してみたが、反映されていないようだ。この構造に対して、スコープが適用される URL のリストを正常に追加するにはどうすればよいか。
after_initialize do

    module ::ApiKeyScopeTest
        class Engine < ::Rails::Engine
            engine_name "api_key_scope_test"
            isolate_namespace ApiKeyScopeTest
        end
    end

    class ApiKeyScopeTest::ApiKeyScopeTestController < ::ApplicationController

        def action
            ...
        end

    end

    ApiKeyScopeTest::Engine.routes.draw do
        post "/admin/plugins/api-key-scope-test" => "api_key_scope_test#action", constraints: AdminConstraint.new
    end

    Discourse::Application.routes.append do
        mount ::ApiKeyScopeTest::Engine, at: "/"
    end

    plugin = Plugin::Instance.new # 注:これが正しいかは不明

    plugin.add_api_key_scope(
        :test_scope,
        {
            post: {
                actions: %w[api_key_scope_test#action]
            }
        }
    )

end
「いいね!」 1