Class: Melaya::ConnectorsAPI

Inherits:
Object
  • Object
show all
Defined in:
lib/melaya/connectors.rb

Overview

Project Connectors API — manage credentials at project scope.

Project-scoped connectors are isolated per project, letting separate projects use different API keys for the same service.

Maps to /api/v1/private/projects/:project/connectors/*.

Examples:

melaya.connectors.set("my-project", "openai", value: "sk-...")
services = melaya.connectors.connected_services("my-project")

Instance Method Summary collapse

Constructor Details

#initialize(http) ⇒ ConnectorsAPI

Returns a new instance of ConnectorsAPI.



15
16
17
# File 'lib/melaya/connectors.rb', line 15

def initialize(http)
  @http = http
end

Instance Method Details

#connected_services(project) ⇒ Object

GET /api/v1/private/projects/:project/connectors/services List connected services for a project.

Parameters:

  • project (String)

    project name



22
23
24
# File 'lib/melaya/connectors.rb', line 22

def connected_services(project)
  @http.get("/api/v1/private/projects/#{enc(project)}/connectors/services")
end

#delete(project, service) ⇒ Object

DELETE /api/v1/private/projects/:project/connectors/:service Delete a project-scoped connector credential.

Parameters:

  • project (String)
  • service (String)


42
43
44
# File 'lib/melaya/connectors.rb', line 42

def delete(project, service)
  @http.delete("/api/v1/private/projects/#{enc(project)}/connectors/#{enc(service)}")
end

#env_handle(project) ⇒ Object

POST /api/v1/private/projects/:project/connectors/env-handle Get a short-lived env-handle token for project-scoped credentials.

Parameters:

  • project (String)


49
50
51
# File 'lib/melaya/connectors.rb', line 49

def env_handle(project)
  @http.post("/api/v1/private/projects/#{enc(project)}/connectors/env-handle")
end

#google_oauth_start(project, body = {}) ⇒ Object

POST /api/v1/private/projects/:project/connectors/google/oauth Start Google OAuth flow for project-scoped connector.

Parameters:

  • project (String)
  • body (Hash) (defaults to: {})


57
58
59
# File 'lib/melaya/connectors.rb', line 57

def google_oauth_start(project, body = {})
  @http.post("/api/v1/private/projects/#{enc(project)}/connectors/google/oauth", body)
end

#set(project, service, value:, key: nil, label: nil) ⇒ Object

PUT /api/v1/private/projects/:project/connectors/:service Store a connector credential at project scope.

Parameters:

  • project (String)
  • service (String)
  • value (String)
  • key (String, nil) (defaults to: nil)
  • label (String, nil) (defaults to: nil)


33
34
35
36
# File 'lib/melaya/connectors.rb', line 33

def set(project, service, value:, key: nil, label: nil)
  body = compact("value" => value, "key" => key, "label" => label)
  @http.put("/api/v1/private/projects/#{enc(project)}/connectors/#{enc(service)}", body)
end