Documentation ¶
Index ¶
Constants ¶
View Source
const ( BASE_URL = "https://api.openai.com" ORGS_ENDPOINT = "/v1/organizations" ME_ENDPOINT = "/v1/me" )
Variables ¶
View Source
var POST_PAYLOAD = map[string]interface{}{"speed": 1}
View Source
var SCOPES = []OpenAIScope{ { Name: "Models", Tests: []analyzers.HttpStatusTest{ {URL: BASE_URL + "/v1/models", Method: "GET", Valid: []int{200}, Invalid: []int{403}, Type: analyzers.READ, Status: analyzers.PermissionStatus{}}, }, Endpoints: []string{"/v1/models"}, }, { Name: "Model capabilities", Tests: []analyzers.HttpStatusTest{ {URL: BASE_URL + "/v1/images/generations", Method: "POST", Payload: POST_PAYLOAD, Valid: []int{400}, Invalid: []int{401}, Type: analyzers.WRITE, Status: analyzers.PermissionStatus{}}, }, Endpoints: []string{"/v1/audio", "/v1/chat/completions", "/v1/embeddings", "/v1/images", "/v1/moderations"}, }, { Name: "Assistants", Tests: []analyzers.HttpStatusTest{ {URL: BASE_URL + "/v1/assistants", Method: "GET", Valid: []int{400}, Invalid: []int{401}, Type: analyzers.READ, Status: analyzers.PermissionStatus{}}, {URL: BASE_URL + "/v1/assistants", Method: "POST", Payload: POST_PAYLOAD, Valid: []int{400}, Invalid: []int{401}, Type: analyzers.WRITE, Status: analyzers.PermissionStatus{}}, }, Endpoints: []string{"/v1/assistants"}, }, { Name: "Threads", Tests: []analyzers.HttpStatusTest{ {URL: BASE_URL + "/v1/threads/1", Method: "GET", Valid: []int{400}, Invalid: []int{401}, Type: analyzers.READ, Status: analyzers.PermissionStatus{}}, {URL: BASE_URL + "/v1/threads", Method: "POST", Payload: POST_PAYLOAD, Valid: []int{400}, Invalid: []int{401}, Type: analyzers.WRITE, Status: analyzers.PermissionStatus{}}, }, Endpoints: []string{"/v1/threads"}, }, { Name: "Fine-tuning", Tests: []analyzers.HttpStatusTest{ {URL: BASE_URL + "/v1/fine_tuning/jobs", Method: "GET", Valid: []int{200}, Invalid: []int{401}, Type: analyzers.READ, Status: analyzers.PermissionStatus{}}, {URL: BASE_URL + "/v1/fine_tuning/jobs", Method: "POST", Payload: POST_PAYLOAD, Valid: []int{400}, Invalid: []int{401}, Type: analyzers.WRITE, Status: analyzers.PermissionStatus{}}, }, Endpoints: []string{"/v1/fine_tuning"}, }, { Name: "Files", Tests: []analyzers.HttpStatusTest{ {URL: BASE_URL + "/v1/files", Method: "GET", Valid: []int{200}, Invalid: []int{401}, Type: analyzers.READ, Status: analyzers.PermissionStatus{}}, {URL: BASE_URL + "/v1/files", Method: "POST", Payload: POST_PAYLOAD, Valid: []int{415}, Invalid: []int{401}, Type: analyzers.WRITE, Status: analyzers.PermissionStatus{}}, }, Endpoints: []string{"/v1/files"}, }, }
Functions ¶
Types ¶
type Analyzer ¶
func (Analyzer) Type ¶
func (Analyzer) Type() analyzerpb.AnalyzerType
type AnalyzerJSON ¶
type AnalyzerJSON struct {
// contains filtered or unexported fields
}
func AnalyzePermissions ¶
func AnalyzePermissions(cfg *config.Config, key string) (*AnalyzerJSON, error)
AnalyzePermissions will analyze the permissions of an OpenAI API key
type MeJSON ¶
type MeJSON struct { ID string `json:"id"` Name string `json:"name"` Email string `json:"email"` Phone string `json:"phone_number"` MfaEnabled bool `json:"mfa_flag_enabled"` Orgs struct { Data []struct { ID string `json:"id"` Title string `json:"title"` User string `json:"name"` Description string `json:"description"` Personal bool `json:"personal"` Default bool `json:"is_default"` Role string `json:"role"` } `json:"data"` } `json:"orgs"` }
type OpenAIScope ¶
type OpenAIScope struct { Name string Tests []analyzers.HttpStatusTest Endpoints []string }
func (*OpenAIScope) RunTests ¶
func (s *OpenAIScope) RunTests(key string) error
Click to show internal directories.
Click to hide internal directories.