Documentation
¶
Index ¶
- Constants
- func RequestDescriptorDigest(descriptor RequestDescriptor) (string, error)
- type Catalog
- type CatalogRequest
- type CatalogResource
- type CredentialPurpose
- type Manifest
- type OriginRule
- type Permission
- type PermissionDeclarations
- type Projection
- type RequestDescriptor
- type ResourceType
- type ResponseDisposition
- type ResponseField
- type ResponseSchema
- type Selector
- type SelectorToken
- type SelectorTokenKind
- type StateCapabilities
Constants ¶
View Source
const ( FileName = "provider.codefly.yaml" SchemaVersionV0 = "codefly.provider-manifest/v0" ProtocolVersionV0 = "codefly.provider/v0" StateSchemaVersionV1 = uint32(1) DefaultDeletionRetain = "retain" SelectorVersionV1 = "v1" )
Variables ¶
This section is empty.
Functions ¶
func RequestDescriptorDigest ¶
func RequestDescriptorDigest(descriptor RequestDescriptor) (string, error)
Types ¶
type Catalog ¶
type Catalog struct {
SchemaVersion string `json:"schema_version"`
ProtocolVersion string `json:"protocol_version"`
StateSchemaVersions []uint32 `json:"state_schema_versions"`
Requests []CatalogRequest `json:"requests"`
ResourceTypes []CatalogResource `json:"resource_types"`
ProjectionContracts []string `json:"projection_contracts"`
DiagnosticCodes []string `json:"diagnostic_codes"`
}
func (*Catalog) CanonicalBytes ¶
type CatalogRequest ¶
type CatalogResource ¶
type CredentialPurpose ¶
type Manifest ¶
type Manifest struct {
SchemaVersion string `yaml:"schema_version" json:"schema_version"`
ProtocolVersion string `yaml:"protocol_version" json:"protocol_version"`
StateSchemaVersions []uint32 `yaml:"state_schema_versions" json:"state_schema_versions"`
Agent resources.Agent `yaml:"agent" json:"agent"`
DefaultDeletionPolicy string `yaml:"default_deletion_policy" json:"default_deletion_policy"`
Permissions PermissionDeclarations `yaml:"permissions" json:"permissions"`
ResourceTypes []ResourceType `yaml:"resource_types" json:"resource_types"`
Requests []RequestDescriptor `yaml:"requests" json:"requests"`
OriginRules []OriginRule `yaml:"origin_rules" json:"origin_rules"`
CredentialPurposes []CredentialPurpose `yaml:"credential_purposes" json:"credential_purposes"`
ResponseSchemas []ResponseSchema `yaml:"response_schemas" json:"response_schemas"`
Projections []Projection `yaml:"projections" json:"projections"`
Sandbox policy.SandboxPolicy `yaml:"sandbox" json:"sandbox"`
State StateCapabilities `yaml:"state" json:"state"`
DiagnosticNamespace string `yaml:"diagnostic_namespace" json:"diagnostic_namespace"`
}
func (*Manifest) AdmitRuntimeCatalog ¶
func (m *Manifest) AdmitRuntimeCatalog(runtime *providerv0.RuntimeCatalog) (*Catalog, error)
func (*Manifest) CanonicalBytes ¶
func (*Manifest) ValidateCatalog ¶
type OriginRule ¶
type OriginRule struct {
ID string `yaml:"id" json:"id"`
Defaults []string `yaml:"defaults" json:"defaults"`
Schemes []string `yaml:"schemes" json:"schemes"`
HostPatterns []string `yaml:"host_patterns" json:"host_patterns"`
Ports []uint32 `yaml:"ports" json:"ports"`
BindingOverride string `yaml:"binding_override" json:"binding_override"`
PrivateNetworkClasses []string `yaml:"private_network_classes" json:"private_network_classes"`
}
type Permission ¶
type Permission struct {
ID string `yaml:"id" json:"id"`
Action string `yaml:"action" json:"action"`
Resource string `yaml:"resource" json:"resource"`
ResourceType string `yaml:"resource_type" json:"resource_type"`
Reason string `yaml:"reason" json:"reason"`
Risk string `yaml:"risk" json:"risk"`
CredentialPurpose string `yaml:"credential_purpose,omitempty" json:"credential_purpose,omitempty"`
}
type PermissionDeclarations ¶
type PermissionDeclarations struct {
Required []Permission `yaml:"required" json:"required"`
Optional []Permission `yaml:"optional,omitempty" json:"optional,omitempty"`
}
type Projection ¶
type RequestDescriptor ¶
type RequestDescriptor struct {
ID string `yaml:"id" json:"id"`
Permissions []string `yaml:"permissions" json:"permissions"`
ResourceType string `yaml:"resource_type" json:"resource_type"`
Action string `yaml:"action" json:"action"`
OriginRule string `yaml:"origin_rule" json:"origin_rule"`
Operation string `yaml:"operation" json:"operation"`
Method string `yaml:"method" json:"method"`
PathTemplate string `yaml:"path_template" json:"path_template"`
RemoteIDParameters []string `yaml:"remote_id_parameters,omitempty" json:"remote_id_parameters,omitempty"`
AllowedQueryFields []string `yaml:"allowed_query_fields,omitempty" json:"allowed_query_fields,omitempty"`
AllowedBodyFields []string `yaml:"allowed_body_fields,omitempty" json:"allowed_body_fields,omitempty"`
OwnershipBodyFields []string `yaml:"ownership_body_fields,omitempty" json:"ownership_body_fields,omitempty"`
RequestByteBudget uint64 `yaml:"request_byte_budget" json:"request_byte_budget"`
ResponseByteBudget uint64 `yaml:"response_byte_budget" json:"response_byte_budget"`
ReadOnly bool `yaml:"read_only" json:"read_only"`
ResponseSchema string `yaml:"response_schema" json:"response_schema"`
CredentialPurposes []string `yaml:"credential_purposes,omitempty" json:"credential_purposes,omitempty"`
}
type ResourceType ¶
type ResourceType struct {
ID string `yaml:"id" json:"id"`
Actions []string `yaml:"actions" json:"actions"`
ImportIdentity []string `yaml:"import_identity,omitempty" json:"import_identity,omitempty"`
SupportsReplace bool `yaml:"supports_replace,omitempty" json:"supports_replace,omitempty"`
SupportsDelete bool `yaml:"supports_delete,omitempty" json:"supports_delete,omitempty"`
}
type ResponseDisposition ¶
type ResponseDisposition string
const ( ResponseForwardSafe ResponseDisposition = "FORWARD_SAFE" ResponseSuppressPresence ResponseDisposition = "SUPPRESS_REPORT_PRESENCE" ResponseCaptureToSink ResponseDisposition = "CAPTURE_TO_SINK" )
type ResponseField ¶
type ResponseField struct {
Selector Selector `yaml:"selector" json:"selector"`
Disposition ResponseDisposition `yaml:"disposition" json:"disposition"`
Purpose string `yaml:"purpose,omitempty" json:"purpose,omitempty"`
}
type ResponseSchema ¶
type ResponseSchema struct {
ID string `yaml:"id" json:"id"`
Fields []ResponseField `yaml:"fields" json:"fields"`
}
type Selector ¶
type SelectorToken ¶
type SelectorToken struct {
Kind SelectorTokenKind
Key string
Index uint64
}
func ParseSelector ¶
func ParseSelector(selector Selector) ([]SelectorToken, error)
type SelectorTokenKind ¶
type SelectorTokenKind string
const ( SelectorObjectKey SelectorTokenKind = "object-key" SelectorExactIndex SelectorTokenKind = "exact-index" SelectorArrayWildcard SelectorTokenKind = "array-wildcard" )
type StateCapabilities ¶
type StateCapabilities struct {
SchemaVersions []uint32 `yaml:"schema_versions" json:"schema_versions"`
ImportIdentity bool `yaml:"import_identity" json:"import_identity"`
Replace bool `yaml:"replace" json:"replace"`
Delete bool `yaml:"delete" json:"delete"`
StepwiseUpgrade bool `yaml:"stepwise_upgrade" json:"stepwise_upgrade"`
}
Click to show internal directories.
Click to hide internal directories.