user

package
v2.6.1+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2018 License: MPL-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccessDefinition

type AccessDefinition struct {
	APIName     string       `json:"api_name" msg:"api_name"`
	APIID       string       `json:"api_id" msg:"api_id"`
	Versions    []string     `json:"versions" msg:"versions"`
	AllowedURLs []AccessSpec `bson:"allowed_urls"  json:"allowed_urls" msg:"allowed_urls"` // mapped string MUST be a valid regex
}

AccessDefinition defines which versions of an API a key has access to

type AccessSpec

type AccessSpec struct {
	URL     string   `json:"url" msg:"url"`
	Methods []string `json:"methods" msg:"methods"`
}

AccessSpecs define what URLS a user has access to an what methods are enabled

type HashType

type HashType string
const (
	HashPlainText HashType = ""
	HashBCrypt    HashType = "bcrypt"
)

type Policy

type Policy struct {
	MID              bson.ObjectId               `bson:"_id,omitempty" json:"_id"`
	ID               string                      `bson:"id,omitempty" json:"id"`
	OrgID            string                      `bson:"org_id" json:"org_id"`
	Rate             float64                     `bson:"rate" json:"rate"`
	Per              float64                     `bson:"per" json:"per"`
	QuotaMax         int64                       `bson:"quota_max" json:"quota_max"`
	QuotaRenewalRate int64                       `bson:"quota_renewal_rate" json:"quota_renewal_rate"`
	AccessRights     map[string]AccessDefinition `bson:"access_rights" json:"access_rights"`
	HMACEnabled      bool                        `bson:"hmac_enabled" json:"hmac_enabled"`
	Active           bool                        `bson:"active" json:"active"`
	IsInactive       bool                        `bson:"is_inactive" json:"is_inactive"`
	Tags             []string                    `bson:"tags" json:"tags"`
	KeyExpiresIn     int64                       `bson:"key_expires_in" json:"key_expires_in"`
	Partitions       PolicyPartitions            `bson:"partitions" json:"partitions"`
	LastUpdated      string                      `bson:"last_updated" json:"last_updated"`
}

type PolicyPartitions

type PolicyPartitions struct {
	Quota     bool `bson:"quota" json:"quota"`
	RateLimit bool `bson:"rate_limit" json:"rate_limit"`
	Acl       bool `bson:"acl" json:"acl"`
}

type SessionState

type SessionState struct {
	LastCheck        int64                       `json:"last_check" msg:"last_check"`
	Allowance        float64                     `json:"allowance" msg:"allowance"`
	Rate             float64                     `json:"rate" msg:"rate"`
	Per              float64                     `json:"per" msg:"per"`
	Expires          int64                       `json:"expires" msg:"expires"`
	QuotaMax         int64                       `json:"quota_max" msg:"quota_max"`
	QuotaRenews      int64                       `json:"quota_renews" msg:"quota_renews"`
	QuotaRemaining   int64                       `json:"quota_remaining" msg:"quota_remaining"`
	QuotaRenewalRate int64                       `json:"quota_renewal_rate" msg:"quota_renewal_rate"`
	AccessRights     map[string]AccessDefinition `json:"access_rights" msg:"access_rights"`
	OrgID            string                      `json:"org_id" msg:"org_id"`
	OauthClientID    string                      `json:"oauth_client_id" msg:"oauth_client_id"`
	OauthKeys        map[string]string           `json:"oauth_keys" msg:"oauth_keys"`
	Certificate      string                      `json:"certificate" msg:"certificate"`
	BasicAuthData    struct {
		Password string   `json:"password" msg:"password"`
		Hash     HashType `json:"hash_type" msg:"hash_type"`
	} `json:"basic_auth_data" msg:"basic_auth_data"`
	JWTData struct {
		Secret string `json:"secret" msg:"secret"`
	} `json:"jwt_data" msg:"jwt_data"`
	HMACEnabled   bool     `json:"hmac_enabled" msg:"hmac_enabled"`
	HmacSecret    string   `json:"hmac_string" msg:"hmac_string"`
	IsInactive    bool     `json:"is_inactive" msg:"is_inactive"`
	ApplyPolicyID string   `json:"apply_policy_id" msg:"apply_policy_id"`
	ApplyPolicies []string `json:"apply_policies" msg:"apply_policies"`
	DataExpires   int64    `json:"data_expires" msg:"data_expires"`
	Monitor       struct {
		TriggerLimits []float64 `json:"trigger_limits" msg:"trigger_limits"`
	} `json:"monitor" msg:"monitor"`
	EnableDetailedRecording bool                   `json:"enable_detail_recording" msg:"enable_detail_recording"`
	MetaData                map[string]interface{} `json:"meta_data" msg:"meta_data"`
	Tags                    []string               `json:"tags" msg:"tags"`
	Alias                   string                 `json:"alias" msg:"alias"`
	LastUpdated             string                 `json:"last_updated" msg:"last_updated"`
	IdExtractorDeadline     int64                  `json:"id_extractor_deadline" msg:"id_extractor_deadline"`
	SessionLifetime         int64                  `bson:"session_lifetime" json:"session_lifetime"`

	FirstSeenHash string `bson:"-" json:"-"`
}

SessionState objects represent a current API session, mainly used for rate limiting. There's a data structure that's based on this and it's used for Protocol Buffer support, make sure to update "coprocess/proto/coprocess_session_state.proto" and generate the bindings using: cd coprocess/proto && ./update_bindings.sh

func (*SessionState) HasChanged

func (s *SessionState) HasChanged() bool

func (*SessionState) Hash

func (s *SessionState) Hash() string

func (*SessionState) Lifetime

func (s *SessionState) Lifetime(fallback int64) int64

func (*SessionState) PolicyIDs

func (s *SessionState) PolicyIDs() []string

PolicyIDs returns the IDs of all the policies applied to this session. For backwards compatibility reasons, this falls back to ApplyPolicyID if ApplyPolicies is empty.

func (*SessionState) SetFirstSeenHash

func (s *SessionState) SetFirstSeenHash()

func (*SessionState) SetPolicies

func (s *SessionState) SetPolicies(ids ...string)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL