operation

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OperationSelect = "select"

	WarningOperationPIISelected    = "OPERATION_SPEC_PII_SELECTED"
	WarningOperationRequiredFilter = "OPERATION_SPEC_REQUIRED_FILTER_MISSING"
	WarningOperationMissingLimit   = query.WarningLimitMissing
	WarningOperationStaleManifest  = manifest.WarningStale
)

Variables

View Source
var (
	ErrManifestRequired        = errors.New("goquent operation: manifest is required")
	ErrUnsupportedOperation    = errors.New("goquent operation: unsupported operation")
	ErrModelRequired           = errors.New("goquent operation: model is required")
	ErrUnknownModel            = errors.New("goquent operation: unknown model")
	ErrSelectRequired          = errors.New("goquent operation: explicit select fields are required")
	ErrUnknownField            = errors.New("goquent operation: unknown field")
	ErrForbiddenField          = errors.New("goquent operation: forbidden field")
	ErrInvalidFilter           = errors.New("goquent operation: invalid filter")
	ErrInvalidOrder            = errors.New("goquent operation: invalid order")
	ErrRequiredFilterMissing   = errors.New("goquent operation: required filter missing")
	ErrPIIAccessReasonRequired = errors.New("goquent operation: PII access reason required")
	ErrStaleManifest           = errors.New("goquent operation: stale manifest")
)

Functions

func Compile

func Compile(ctx context.Context, spec OperationSpec, opts Options) (*query.QueryPlan, error)

Compile validates spec and compiles it to a read-only QueryPlan.

func JSONSchema

func JSONSchema() ([]byte, error)

JSONSchema returns the OperationSpec MVP JSON Schema.

func Validate

func Validate(spec OperationSpec, opts Options) ([]query.Warning, error)

Validate checks an OperationSpec against a manifest and policy metadata.

Types

type FilterSpec

type FilterSpec struct {
	Field    string `json:"field"`
	Op       string `json:"op"`
	Value    any    `json:"value,omitempty"`
	ValueRef string `json:"value_ref,omitempty"`
}

FilterSpec describes a single field predicate.

type OperationSpec

type OperationSpec struct {
	Operation    string       `json:"operation"`
	Model        string       `json:"model"`
	Select       []string     `json:"select,omitempty"`
	Filters      []FilterSpec `json:"filters,omitempty"`
	OrderBy      []OrderSpec  `json:"order_by,omitempty"`
	Limit        *int64       `json:"limit,omitempty"`
	AccessReason string       `json:"access_reason,omitempty"`
}

OperationSpec is the read-only structured interface for AI-generated DB intent.

func (*OperationSpec) UnmarshalJSON

func (s *OperationSpec) UnmarshalJSON(b []byte) error

UnmarshalJSON rejects non-MVP fields such as join, aggregate, mutation, or raw SQL hints.

type Options

type Options struct {
	Manifest             *manifest.Manifest
	Dialect              driver.Dialect
	Values               map[string]any
	RequireFreshManifest bool
	AccessReason         string
}

Options controls validation and compilation.

type OrderSpec

type OrderSpec struct {
	Field     string `json:"field"`
	Direction string `json:"direction"`
}

OrderSpec describes a single ordering term.

Jump to

Keyboard shortcuts

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