Class: VectorAmp::OrgSecretsResource

Inherits:
Object
  • Object
show all
Defined in:
lib/vector_amp/org_secrets.rb

Overview

Organization-scoped secret helpers exposed by the public API.

Constant Summary collapse

DEFAULT_OPENAI_SECRET_REF =
"emb:openai:api_key"

Instance Method Summary collapse

Constructor Details

#initialize(transport) ⇒ OrgSecretsResource

Parameters:

  • transport (#request)

    API transport.



14
15
16
# File 'lib/vector_amp/org_secrets.rb', line 14

def initialize(transport)
  @transport = transport
end

Instance Method Details

#exists?(name:) ⇒ Boolean

Check whether an organization secret exists.

Returns:

  • (Boolean)

Raises:

  • (ArgumentError)


31
32
33
34
35
# File 'lib/vector_amp/org_secrets.rb', line 31

def exists?(name:)
  secret_name = name.to_s.strip
  raise ArgumentError, "name is required" if secret_name.empty?
  @transport.request(:get, "/org-secrets/#{URI.encode_www_form_component(secret_name)}")
end

#openai_api_key?Hash?

Check whether the default organization OpenAI API key exists.

Returns:

  • (Hash, nil)

    API response; normally nil/empty for 204.



54
55
56
# File 'lib/vector_amp/org_secrets.rb', line 54

def openai_api_key?
  exists?(name: DEFAULT_OPENAI_SECRET_REF)
end

#put(name:, value:) ⇒ Object

Store or update an organization secret by name.

Parameters:

  • name (String)

    org secret reference to write.

  • value (String)

    plaintext value sent once to the API.

Raises:

  • (ArgumentError)


21
22
23
24
25
26
27
28
# File 'lib/vector_amp/org_secrets.rb', line 21

def put(name:, value:)
  secret_name = name.to_s.strip
  secret_value = value.to_s.strip
  raise ArgumentError, "name is required" if secret_name.empty?
  raise ArgumentError, "value is required" if secret_value.empty?

  @transport.request(:put, "/org-secrets/#{URI.encode_www_form_component(secret_name)}", body: { value: secret_value })
end

#put_openai_api_key(api_key:, secret_ref: DEFAULT_OPENAI_SECRET_REF, validate: false, model: nil) ⇒ Hash? Also known as: update_openai_api_key

Store or update the organization OpenAI API key.

Parameters:

  • api_key (String)

    OpenAI API key to store server-side.

  • secret_ref (String) (defaults to: DEFAULT_OPENAI_SECRET_REF)

    org secret reference to write.

  • validate (Boolean) (defaults to: false)

    accepted for API compatibility; generic org-secret writes do not validate.

  • model (String, nil) (defaults to: nil)

    accepted for API compatibility.

Returns:

  • (Hash, nil)

    API response; normally nil/empty for 204.

Raises:

  • (ArgumentError)


43
44
45
46
47
48
# File 'lib/vector_amp/org_secrets.rb', line 43

def put_openai_api_key(api_key:, secret_ref: DEFAULT_OPENAI_SECRET_REF, validate: false, model: nil)
  key = api_key.to_s.strip
  raise ArgumentError, "api_key is required" if key.empty?

  put(name: secret_ref, value: key)
end