Class: ActionAgent::Api::ProviderKeysController
- Inherits:
-
BaseController
- Object
- ActionController::Base
- ActionAgent::ApplicationController
- BaseController
- ActionAgent::Api::ProviderKeysController
- Defined in:
- app/controllers/action_agent/api/provider_keys_controller.rb
Overview
Per-account LLM provider credentials (Settings -> Provider API Keys). API keys are write-only: responses carry a masked hint, never the key. Ollama's credential is a host URL and is echoed back in full.
Instance Method Summary collapse
-
#create ⇒ Object
POST /api/provider_keys — upserts the credential for a provider.
-
#destroy ⇒ Object
DELETE /api/provider_keys/:provider.
-
#index ⇒ Object
GET /api/provider_keys — one row per supported provider, configured or not.
Methods inherited from ActionAgent::ApplicationController
Instance Method Details
#create ⇒ Object
POST /api/provider_keys — upserts the credential for a provider.
23 24 25 26 27 28 29 30 31 |
# File 'app/controllers/action_agent/api/provider_keys_controller.rb', line 23 def create provider = params.require(:provider) credential = params.require(:credential) record = owned(ProviderKey).find_or_initialize_by(provider: provider) record.update!(credential: credential) render json: { provider_key: serialize(provider, record) }, status: :created end |
#destroy ⇒ Object
DELETE /api/provider_keys/:provider
34 35 36 37 |
# File 'app/controllers/action_agent/api/provider_keys_controller.rb', line 34 def destroy owned(ProviderKey).find_by!(provider: params[:provider]).destroy! head :no_content end |
#index ⇒ Object
GET /api/provider_keys — one row per supported provider, configured or not.
12 13 14 15 16 17 18 19 20 |
# File 'app/controllers/action_agent/api/provider_keys_controller.rb', line 12 def index configured = owned(ProviderKey).index_by(&:provider) render json: { provider_keys: ProviderKey::PROVIDERS.map do |provider| serialize(provider, configured[provider]) end } end |