Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Context ¶
type Context struct {
UserID string `json:"userId,omitempty"`
Source string `json:"source,omitempty"`
}
--- Estruturas de Dados --- Context contém informações de contexto da requisição - UserID: ID do usuário - Source: Origem da solicitação
type EngineContext ¶
type EngineContext struct {
RequestSchema *schema.Schema // Definição de schema simplificada
ResponseSchema *schema.Schema // Definição de schema simplificada
Policies map[string]policy.PolicyDefinition // Mapa do nome da política para sua definição
InputType string // Ex: "APIGatewayProxy", "ALB", "Local"
}
EngineContext mantém a configuração para o motor de processamento de requisições.
func NewEngineContext ¶
func NewEngineContext(reqSchema, respSchema *schema.Schema, policiesConfig map[string]policy.PolicyDefinition, inputType string) *EngineContext
NewEngineContext cria um novo contexto de motor.
func (*EngineContext) ExecutePolicies ¶
func (ec *EngineContext) ExecutePolicies(data map[string]interface{}, policyNames []string) ([]policy.PolicyExecutionResult, bool)
ExecutePolicies executa as políticas especificadas contra os dados.
func (*EngineContext) ProcessRequest ¶
func (ec *EngineContext) ProcessRequest(rawRequestBody []byte) (map[string]interface{}, error)
ProcessRequest lida com uma string de requisição raw.
type Request ¶
type Request struct {
ID string `json:"id"`
Timestamp string `json:"timestamp,omitempty"`
Context *Context `json:"context,omitempty"`
Data map[string]interface{} `json:"data"`
Policies []string `json:"policies"`
}
Request representa a estrutura da requisição recebida - ID: Identificador único da solicitação - Timestamp: Data e hora da solicitação (opcional) - Data: Dados para aplicação das políticas (obrigatório) - Context: Contexto da solicitação (opcional) - Lista de políticas a serem aplicadas (obrigatório)