Documentation
¶
Overview ¶
Package authorization defines the portable DTQL authorization result wire contract.
Index ¶
- Constants
- func MarshalResult(result Result) ([]byte, error)
- type AuthorizationResult
- type BindingRef
- type Blocker
- type Callable
- type Coverage
- type DisclosureCompleteness
- type EvaluationCompleteness
- type ExecutionClass
- type Layer
- type LayerDecision
- type Mode
- type OperationRef
- type OperationResult
- type Outcome
- type PolicyRef
- type ReasonCode
- type Resource
- type Restriction
- type Result
- type Sample
- type SampleOrder
- type Scope
- type Source
- type Unevaluated
Constants ¶
View Source
const ( CodeAccessDenied = access.CodeAccessDenied CodeRuleDenied = access.CodeRuleDenied CodeNoMatch = access.CodeNoMatch CodeRowPredicateFailed = access.CodeRowPredicateFailed CodePostImageFailed = access.CodePostImageFailed CodeColumnDenied = access.CodeColumnDenied CodeEvaluationFailed = access.CodeEvaluationFailed CodeConfigurationInvalid = access.CodeConfigurationInvalid CodeEnforcementUnsupported = access.CodeEnforcementUnsupported CodePrincipalUnresolved = access.CodePrincipalUnresolved CodeCapabilityDenied = access.CodeCapabilityDenied CodeExecutionClassDenied = access.CodeExecutionClassDenied CodeCallableDenied = access.CodeCallableDenied CodeCollectionDenied = access.CodeCollectionDenied )
View Source
const APIVersion = "dtql.org/authorization/v1"
Variables ¶
This section is empty.
Functions ¶
func MarshalResult ¶
Types ¶
type AuthorizationResult ¶
type AuthorizationResult = Result
type BindingRef ¶
type Blocker ¶
type Blocker struct {
OperationID string `json:"operationId"`
Code ReasonCode `json:"code"`
Scope Scope `json:"scope"`
Resource *Resource `json:"resource,omitempty"`
LayerID string `json:"layerId,omitempty"`
PolicyRef *PolicyRef `json:"policyRef,omitempty"`
Slot string `json:"slot,omitempty"`
Columns [][]string `json:"columns,omitempty"`
Retryable *bool `json:"retryable,omitempty"`
ExecutionClass ExecutionClass `json:"executionClass,omitempty"`
Callable *Callable `json:"callable,omitempty"`
}
type Coverage ¶
type Coverage struct {
Evaluation EvaluationCompleteness `json:"evaluation"`
Disclosure DisclosureCompleteness `json:"disclosure"`
Truncated bool `json:"truncated"`
Unevaluated []Unevaluated `json:"unevaluated"`
}
type DisclosureCompleteness ¶
type DisclosureCompleteness string
const ( DisclosureFull DisclosureCompleteness = "full" DisclosureRedacted DisclosureCompleteness = "redacted" )
type EvaluationCompleteness ¶
type EvaluationCompleteness string
const ( EvaluationComplete EvaluationCompleteness = "complete" EvaluationPartial EvaluationCompleteness = "partial" )
type ExecutionClass ¶
type ExecutionClass string
const ( ExecutionDTQL ExecutionClass = "dtql" ExecutionNativeSQL ExecutionClass = "native_sql" ExecutionNativeGraphQL ExecutionClass = "native_graphql" ExecutionStoredProcedure ExecutionClass = "stored_procedure" )
type LayerDecision ¶
type LayerDecision struct {
OperationID string `json:"operationId"`
Result Outcome `json:"result"`
PolicyRef *PolicyRef `json:"policyRef,omitempty"`
Scope Scope `json:"scope"`
RuleRefs []string `json:"ruleRefs,omitempty"`
BindingRefs []BindingRef `json:"bindingRefs,omitempty"`
RestrictionIDs []string `json:"restrictionIds"`
}
type OperationRef ¶
type OperationResult ¶
type OperationResult struct {
ID string `json:"id"`
RequestOperationID string `json:"requestOperationId"`
Action string `json:"action"`
Resource Resource `json:"resource"`
Result Outcome `json:"result"`
RestrictionIDs []string `json:"restrictionIds"`
AllOf []string `json:"allOf"`
ExecutionClass ExecutionClass `json:"executionClass"`
Callable *Callable `json:"callable,omitempty"`
}
type ReasonCode ¶
type ReasonCode = access.ReasonCode
type Restriction ¶
type Restriction struct {
ID string `json:"id"`
OperationID string `json:"operationId"`
LayerID string `json:"layerId,omitempty"`
PolicyRef *PolicyRef `json:"policyRef,omitempty"`
Enforced bool `json:"enforced"`
Representation string `json:"representation"`
Kind string `json:"kind"`
Expression *access.DocumentCondition `json:"expression,omitempty"`
Fields []string `json:"fields,omitempty"`
OmissionReason string `json:"omissionReason,omitempty"`
Mask *access.Mask `json:"mask,omitempty"`
}
type Result ¶
type Result struct {
APIVersion string `json:"apiVersion"`
RequestID string `json:"requestId"`
Mode Mode `json:"mode"`
Scope Scope `json:"scope"`
Result Outcome `json:"result"`
Allowed bool `json:"allowed"`
Hypothetical bool `json:"hypothetical"`
Operations []OperationResult `json:"operations"`
Layers []Layer `json:"layers"`
Blockers []Blocker `json:"blockers"`
Coverage Coverage `json:"coverage"`
Restrictions []Restriction `json:"restrictions"`
Sample *Sample `json:"sample,omitempty"`
}
func DecodeResultCompatible ¶
DecodeResultCompatible decodes returned results while preserving unknown future blocker codes. All other frozen-v1 validation remains strict, and an unknown blocker can never coexist with an allowed result.
func ParseResult ¶
type Sample ¶
type Sample struct {
RequestedLimit int `json:"requestedLimit"`
EvaluatedCount int `json:"evaluatedCount"`
Selection string `json:"selection"`
Order []SampleOrder `json:"order"`
Exhaustive bool `json:"exhaustive"`
TemplateOperationID string `json:"templateOperationId"`
SelectionResource Resource `json:"selectionResource"`
}
type SampleOrder ¶
type Unevaluated ¶
Click to show internal directories.
Click to hide internal directories.