Documentation
¶
Index ¶
- Constants
- Variables
- func AvailableAnalyzers() []string
- func CreateLogFileName(baseName string) string
- func GetWriterFromStatus(status PermissionType) func(a ...interface{}) string
- func IsMethodSafe(method string) bool
- func NewAnalyzeClient(cfg *config.Config, opts ...func(*http.Client)) *http.Client
- func NewAnalyzeClientUnrestricted(cfg *config.Config, opts ...ClientOption) *http.Client
- func StatusContains(status int, vals []int) bool
- type AnalysisError
- type AnalysisErrorInfo
- type AnalyzeClient
- type Analyzer
- type AnalyzerResult
- type AnalyzerRoundTripper
- type AnalyzerType
- type Binding
- type ClientOption
- type HttpStatusTest
- type LoggingRoundTripper
- type Permission
- type PermissionStatus
- type PermissionType
- type RateLimitRoundTripper
- type Resource
- type Scope
Constants ¶
const ( READ PermissionType = "Read" WRITE PermissionType = "Write" READ_WRITE PermissionType = "Read & Write" NONE PermissionType = "None" ERROR PermissionType = "Error" FullAccess string = "full_access" )
const ( OperationValidateCredentials = "validate_credentials" OperationAnalyzePermissions = "analyze_permissions" )
Operation constants for AnalysisError.
const ( ServiceAPI = "API" ServiceConfig = "config" ServiceDatabase = "Database" ServiceOAuth = "OAuth" ServiceCrypto = "crypto" )
Service constants for AnalysisError.
Variables ¶
var DefaultWriter = color.New().SprintFunc()
var GreenWriter = color.New(color.FgGreen).SprintFunc()
var RedWriter = color.New(color.FgRed).SprintFunc()
var YellowWriter = color.New(color.FgYellow).SprintFunc()
Functions ¶
func AvailableAnalyzers ¶ added in v3.81.6
func AvailableAnalyzers() []string
AvailableAnalyzers returns a sorted slice of AnalyzerType strings, skipping "Invalid".
func CreateLogFileName ¶
func GetWriterFromStatus ¶
func GetWriterFromStatus(status PermissionType) func(a ...interface{}) string
func IsMethodSafe ¶ added in v3.88.3
IsMethodSafe is a helper method to check whether the HTTP method is safe according to MDN Web Docs. https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods#safe_idempotent_and_cacheable_request_methods
func NewAnalyzeClient ¶
This returns a client that is restricted and filters out unsafe requests returning a success status code.
func NewAnalyzeClientUnrestricted ¶ added in v3.88.3
func NewAnalyzeClientUnrestricted(cfg *config.Config, opts ...ClientOption) *http.Client
This returns a client that is unrestricted and does not filter out unsafe requests returning a success status code.
func StatusContains ¶
Types ¶
type AnalysisError ¶ added in v3.95.0
type AnalysisError struct {
// contains filtered or unexported fields
}
AnalysisError represents a structured error from an analyzer.
func NewAnalysisError ¶ added in v3.95.0
func NewAnalysisError(analyzerType, operation, service, resource string, err error) *AnalysisError
NewAnalysisError creates a new AnalysisError.
func (*AnalysisError) AnalyzerType ¶ added in v3.95.0
func (e *AnalysisError) AnalyzerType() string
func (*AnalysisError) Error ¶ added in v3.95.0
func (e *AnalysisError) Error() string
func (*AnalysisError) Operation ¶ added in v3.95.0
func (e *AnalysisError) Operation() string
func (*AnalysisError) Resource ¶ added in v3.95.0
func (e *AnalysisError) Resource() string
func (*AnalysisError) Service ¶ added in v3.95.0
func (e *AnalysisError) Service() string
func (*AnalysisError) Unwrap ¶ added in v3.95.0
func (e *AnalysisError) Unwrap() error
type AnalysisErrorInfo ¶ added in v3.95.0
type AnalysisErrorInfo interface {
error
AnalyzerType() string
Operation() string // "validate_credentials", "authenticate", "analyze_permissions", "connect", "ping"
Service() string // "config", "API", "OAuth", "Database"
Resource() string // account ID, endpoint URL, or other identifier
}
AnalysisErrorInfo is implemented by errors that provide structured context about analysis failures. This allows downstream consumers (e.g., the scanner) to extract metadata for structured error storage without depending on concrete error types.
type Analyzer ¶
type Analyzer interface {
Type() AnalyzerType
Analyze(ctx context.Context, credentialInfo map[string]string) (*AnalyzerResult, error)
}
type AnalyzerResult ¶
type AnalyzerResult struct {
AnalyzerType AnalyzerType
Bindings []Binding
UnboundedResources []Resource
Metadata map[string]any
}
AnalyzerResult is the output of analysis.
type AnalyzerRoundTripper ¶ added in v3.82.3
type AnalyzerRoundTripper struct {
// contains filtered or unexported fields
}
type AnalyzerType ¶ added in v3.82.12
type AnalyzerType int
const ( AnalyzerTypeInvalid AnalyzerType = iota AnalyzerTypeAirbrake AnalyzerAnthropic AnalyzerTypeAsana AnalyzerTypeBitbucket AnalyzerTypeDockerHub AnalyzerTypeElevenLabs AnalyzerTypeGitHub AnalyzerTypeGitLab AnalyzerTypeHuggingFace AnalyzerTypeMailchimp AnalyzerTypeMailgun AnalyzerTypeMySQL AnalyzerTypeOpenAI AnalyzerTypeOpsgenie AnalyzerTypePostgres AnalyzerTypePostman AnalyzerTypeSendgrid AnalyzerTypeShopify AnalyzerTypeSlack AnalyzerTypeSourcegraph AnalyzerTypeSquare AnalyzerTypeStripe AnalyzerTypeTwilio AnalyzerTypePrivateKey AnalyzerTypeNotion AnalyzerTypeDigitalOcean AnalyzerTypePlanetScale AnalyzerTypeAirtableOAuth AnalyzerTypeAirtablePat AnalyzerTypeGroq AnalyzerTypeLaunchDarkly AnalyzerTypeFigma AnalyzerTypePlaid AnalyzerTypeNetlify AnalyzerTypeFastly AnalyzerTypeMonday AnalyzerTypeDatadog AnalyzerTypeNgrok AnalyzerTypeMux AnalyzerTypePosthog AnalyzerTypeDropbox AnalyzerTypeDataBricks AnalyzerTypeJira )
func (AnalyzerType) String ¶ added in v3.82.12
func (a AnalyzerType) String() string
String method to get the string representation of an AnalyzerType.
type Binding ¶
type Binding struct {
Resource Resource
Permission Permission
Condition string
}
func BindAllPermissions ¶ added in v3.80.3
func BindAllPermissions(r Resource, perms ...Permission) []Binding
BindAllPermissions creates a Binding for each permission to the given resource.
type ClientOption ¶ added in v3.93.0
func WithRateLimiter ¶ added in v3.93.0
func WithRateLimiter(l *rate.Limiter) ClientOption
type HttpStatusTest ¶
type HttpStatusTest struct {
URL string
Method string
Payload map[string]interface{}
Params map[string]string
Valid []int
Invalid []int
Type PermissionType
Status PermissionStatus
Risk string
}
type LoggingRoundTripper ¶
type LoggingRoundTripper struct {
// contains filtered or unexported fields
}
type Permission ¶
type Permission struct {
Value string
Parent *Permission
}
type PermissionStatus ¶
type PermissionType ¶
type PermissionType string
type RateLimitRoundTripper ¶ added in v3.93.0
type RateLimitRoundTripper struct {
// contains filtered or unexported fields
}
Directories
¶
| Path | Synopsis |
|---|---|
|
airtable
|
|
|
common
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
classic
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
finegrained
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |
|
Code generated by go generate; DO NOT EDIT.
|
Code generated by go generate; DO NOT EDIT. |