Documentation ¶
Index ¶
Constants ¶
View Source
const ( NO_TIMEOUT_OPTION_NAME = "no-timeout" ENV_OPTION_NAME = "env" DEFAULT_EX_TIMEOUT_DURATION = core.Duration(500 * time.Millisecond) )
View Source
const ( DEFAULT_RSA_KEY_SIZE = 2048 //bit count ARGON2ID_HASH_SALT_SEP = "|" MAX_PASSWORD_BYTE_COUNT = 100 )
View Source
const BUFF_WRITER_SIZE = 100
View Source
const (
DEFAULT_MODULE_LOG_LEVEL = zerolog.InfoLevel
)
Variables ¶
View Source
var ( PEM_PRIVATE_KEY_PATTERN = core.NewSecretPattern(core.NewPEMRegexPattern("(RSA )?PRIVATE KEY"), true) KEY_PAIR_RECORD_PROPNAMES = []string{"public", "private"} SYMB_KEY_PAIR_RECORD = symbolic.NewInexactRecord(map[string]symbolic.Serializable{ "public": symbolic.ANY_STRING, "private": symbolic.ANY_SECRET, }, nil) DEFAULT_ARGON2ID_PARAMS = argon2id.Params{ Memory: argon2id.DefaultParams.Memory, Iterations: argon2id.DefaultParams.Iterations, Parallelism: 1, SaltLength: argon2id.DefaultParams.SaltLength, KeyLength: argon2id.DefaultParams.KeyLength, } ErrPasswordTooLong = errors.New("password is too long") )
View Source
var ( DEFAULT_SCRIPT_LIMITS = []core.Limit{ {Name: fs_ns.FS_READ_LIMIT_NAME, Kind: core.ByteRateLimit, Value: 100_000_000}, {Name: fs_ns.FS_WRITE_LIMIT_NAME, Kind: core.ByteRateLimit, Value: 100_000_000}, {Name: fs_ns.FS_NEW_FILE_RATE_LIMIT_NAME, Kind: core.FrequencyLimit, Value: 100 * core.FREQ_LIMIT_SCALE}, {Name: fs_ns.FS_TOTAL_NEW_FILE_LIMIT_NAME, Kind: core.TotalLimit, Value: 10_000}, {Name: http_ns.HTTP_REQUEST_RATE_LIMIT_NAME, Kind: core.FrequencyLimit, Value: 100 * core.FREQ_LIMIT_SCALE}, {Name: ws_ns.WS_SIMUL_CONN_TOTAL_LIMIT_NAME, Kind: core.TotalLimit, Value: 10}, {Name: net_ns.TCP_SIMUL_CONN_TOTAL_LIMIT_NAME, Kind: core.TotalLimit, Value: 10}, {Name: s3_ns.OBJECT_STORAGE_REQUEST_RATE_LIMIT_NAME, Kind: core.FrequencyLimit, Value: 50 * core.FREQ_LIMIT_SCALE}, {Name: core.THREADS_SIMULTANEOUS_INSTANCES_LIMIT_NAME, Kind: core.TotalLimit, Value: 5}, } DEFAULT_REQUEST_HANDLING_LIMITS = []core.Limit{ {Name: core.THREADS_SIMULTANEOUS_INSTANCES_LIMIT_NAME, Kind: core.TotalLimit, Value: 2}, {Name: core.EXECUTION_CPU_TIME_LIMIT_NAME, Kind: core.TotalLimit, Value: int64(25 * time.Millisecond)}, {Name: core.EXECUTION_TOTAL_LIMIT_NAME, Kind: core.TotalLimit, Value: int64(5 * time.Second)}, {Name: fs_ns.FS_READ_LIMIT_NAME, Kind: core.ByteRateLimit, Value: 100_000}, {Name: fs_ns.FS_WRITE_LIMIT_NAME, Kind: core.ByteRateLimit, Value: 100_000}, {Name: fs_ns.FS_NEW_FILE_RATE_LIMIT_NAME, Kind: core.FrequencyLimit, Value: 10 * core.FREQ_LIMIT_SCALE}, {Name: fs_ns.FS_TOTAL_NEW_FILE_LIMIT_NAME, Kind: core.TotalLimit, Value: 100}, {Name: http_ns.HTTP_REQUEST_RATE_LIMIT_NAME, Kind: core.FrequencyLimit, Value: 1 * core.FREQ_LIMIT_SCALE}, {Name: ws_ns.WS_SIMUL_CONN_TOTAL_LIMIT_NAME, Kind: core.TotalLimit, Value: 1}, {Name: net_ns.TCP_SIMUL_CONN_TOTAL_LIMIT_NAME, Kind: core.TotalLimit, Value: 1}, {Name: s3_ns.OBJECT_STORAGE_REQUEST_RATE_LIMIT_NAME, Kind: core.FrequencyLimit, Value: 1 * core.FREQ_LIMIT_SCALE}, } DEFAULT_MAX_REQUEST_HANDLER_LIMITS = []core.Limit{ {Name: core.THREADS_SIMULTANEOUS_INSTANCES_LIMIT_NAME, Kind: core.TotalLimit, Value: 5}, {Name: core.EXECUTION_CPU_TIME_LIMIT_NAME, Kind: core.TotalLimit, Value: int64(100 * time.Millisecond)}, {Name: core.EXECUTION_TOTAL_LIMIT_NAME, Kind: core.TotalLimit, Value: int64(10 * time.Second)}, {Name: fs_ns.FS_READ_LIMIT_NAME, Kind: core.ByteRateLimit, Value: 10_000_000}, {Name: fs_ns.FS_WRITE_LIMIT_NAME, Kind: core.ByteRateLimit, Value: 10_000_000}, {Name: fs_ns.FS_NEW_FILE_RATE_LIMIT_NAME, Kind: core.FrequencyLimit, Value: 100 * core.FREQ_LIMIT_SCALE}, {Name: fs_ns.FS_TOTAL_NEW_FILE_LIMIT_NAME, Kind: core.TotalLimit, Value: 1000}, {Name: http_ns.HTTP_REQUEST_RATE_LIMIT_NAME, Kind: core.FrequencyLimit, Value: 20 * core.FREQ_LIMIT_SCALE}, {Name: ws_ns.WS_SIMUL_CONN_TOTAL_LIMIT_NAME, Kind: core.TotalLimit, Value: 2}, {Name: net_ns.TCP_SIMUL_CONN_TOTAL_LIMIT_NAME, Kind: core.TotalLimit, Value: 2}, {Name: s3_ns.OBJECT_STORAGE_REQUEST_RATE_LIMIT_NAME, Kind: core.FrequencyLimit, Value: 10 * core.FREQ_LIMIT_SCALE}, } )
View Source
var ( SYMBOLIC_FIND_FN_PARAMS_IF_STR_LIKE_LOCATION = &[]symbolic.Value{symbolic.ANY_STR_PATTERN, symbolic.ANY_STR_LIKE} SYMBOLIC_FIND_FN_PARAMS_IF_PATH_LOCATION = &[]symbolic.Value{symbolic.ANY_PATH_PATTERN, symbolic.ANY_PATH} SYMBOLIC_FIND_FN_PARAMS_IF_ITERABLE_LOCATION = &[]symbolic.Value{symbolic.ANY_PATTERN, symbolic.ANY_SERIALIZABLE_ITERABLE} FIND_FN_PARAM_NAMES = []string{"pattern", "location"} SYMBOLIC_FIND_FIRST_FN_PARAMS_IF_STR_LIKE_LOCATION = &[]symbolic.Value{symbolic.ANY_STR_PATTERN, symbolic.ANY_STR_LIKE} SYMBOLIC_FIND_FIRST_FN_PARAMS_IF_ITERABLE_LOCATION = &[]symbolic.Value{symbolic.ANY_PATTERN, symbolic.ANY_SERIALIZABLE_ITERABLE} FIND_FIRST_FN_PARAM_NAMES = []string{"pattern", "location"} )
View Source
var ( ErrNilResourceArgument = errors.New("resource argument is nil") ErrFailedToImmediatelyAcquireResource = errors.New("failed to immediately acquire resource") )
View Source
var ( RAND_FN_PARAMS = []symbolic.Value{ symbolic.NewMultivalue(symbolic.ANY_PATTERN, symbolic.ANY_INDEXABLE), } RAND_FN_PARAM_NAMES = []string{"arg"} )
Functions ¶
func NewDefaultContext ¶
func NewDefaultContext(config core.DefaultContextConfig) (*core.Context, error)
NewDefaultState creates a new Context with the default patterns.
func NewDefaultGlobalState ¶
func NewDefaultGlobalState(ctx *core.Context, conf core.DefaultGlobalStateConfig) (*core.GlobalState, error)
NewDefaultGlobalState creates a new GlobalState with the default globals.
Types ¶
type HashingAlgorithm ¶
type HashingAlgorithm int
const ( SHA256 HashingAlgorithm = iota SHA384 SHA512 SHA1 MD5 )
func (HashingAlgorithm) String ¶
func (alg HashingAlgorithm) String() string
Source Files ¶
Click to show internal directories.
Click to hide internal directories.