internal

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Feb 9, 2024 License: MIT Imports: 59 Imported by: 0

README

Globals

This package defines what is available in the default global scope:

  • global variables, methods & namespaces
  • patterns & pattern namespaces

See default_state.go.

Most namespaces are defined in their own supackage:

  • env_ns
  • fs_ns
  • html_ns
  • http_ns
  • ws_ns
  • net_ns
  • s3_ns
  • inox_ns
  • inoxlsp_ns
  • inoxsh_ns
  • strmanip_ns
  • chome_ns
  • log_ns

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

Jump to

Keyboard shortcuts

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