Documentation
¶
Index ¶
- Variables
- type AssignKeyAccessServerToAttributeParams
- type AssignKeyAccessServerToAttributeValueParams
- type AssignKeyAccessServerToNamespaceParams
- type AttributeDefinition
- type AttributeDefinitionKeyAccessGrant
- type AttributeDefinitionRule
- type AttributeFqn
- type AttributeNamespace
- type AttributeNamespaceKeyAccessGrant
- type AttributeValue
- type AttributeValueKeyAccessGrant
- type CreateAttributeParams
- type CreateAttributeValueParams
- type CreateKeyAccessServerParams
- type CreateNamespaceParams
- type CreateResourceMappingGroupParams
- type CreateResourceMappingParams
- type CreateSubjectConditionSetParams
- type CreateSubjectMappingParams
- type DBTX
- type GetAttributeRow
- type GetAttributeValueRow
- type GetKeyAccessServerRow
- type GetNamespaceRow
- type GetResourceMappingGroupRow
- type GetResourceMappingRow
- type GetSubjectConditionSetRow
- type GetSubjectMappingRow
- type KeyAccessServer
- type ListAttributeValuesParams
- type ListAttributeValuesRow
- type ListAttributesByDefOrValueFqnsRow
- type ListAttributesDetailParams
- type ListAttributesDetailRow
- type ListAttributesSummaryParams
- type ListAttributesSummaryRow
- type ListConfig
- type ListKeyAccessServerGrantsParams
- type ListKeyAccessServerGrantsRow
- type ListKeyAccessServersParams
- type ListKeyAccessServersRow
- type ListNamespacesParams
- type ListNamespacesRow
- type ListResourceMappingGroupsParams
- type ListResourceMappingGroupsRow
- type ListResourceMappingsByFullyQualifiedGroupParams
- type ListResourceMappingsByFullyQualifiedGroupRow
- type ListResourceMappingsParams
- type ListResourceMappingsRow
- type ListSubjectConditionSetsParams
- type ListSubjectConditionSetsRow
- type ListSubjectMappingsParams
- type ListSubjectMappingsRow
- type MatchSubjectMappingsRow
- type NullAttributeDefinitionRule
- type PolicyDBClient
- func (c PolicyDBClient) AssignKeyAccessServerToAttribute(ctx context.Context, k *attributes.AttributeKeyAccessServer) (*attributes.AttributeKeyAccessServer, error)
- func (c PolicyDBClient) AssignKeyAccessServerToNamespace(ctx context.Context, k *namespaces.NamespaceKeyAccessServer) (*namespaces.NamespaceKeyAccessServer, error)
- func (c PolicyDBClient) AssignKeyAccessServerToValue(ctx context.Context, k *attributes.ValueKeyAccessServer) (*attributes.ValueKeyAccessServer, error)
- func (c *PolicyDBClient) AttrFqnReindex(ctx context.Context) (res struct{ ... })
- func (c PolicyDBClient) CreateAttribute(ctx context.Context, r *attributes.CreateAttributeRequest) (*policy.Attribute, error)
- func (c PolicyDBClient) CreateAttributeValue(ctx context.Context, attributeID string, ...) (*policy.Value, error)
- func (c PolicyDBClient) CreateKeyAccessServer(ctx context.Context, r *kasregistry.CreateKeyAccessServerRequest) (*policy.KeyAccessServer, error)
- func (c PolicyDBClient) CreateNamespace(ctx context.Context, r *namespaces.CreateNamespaceRequest) (*policy.Namespace, error)
- func (c PolicyDBClient) CreateResourceMapping(ctx context.Context, r *resourcemapping.CreateResourceMappingRequest) (*policy.ResourceMapping, error)
- func (c PolicyDBClient) CreateResourceMappingGroup(ctx context.Context, r *resourcemapping.CreateResourceMappingGroupRequest) (*policy.ResourceMappingGroup, error)
- func (c PolicyDBClient) CreateSubjectConditionSet(ctx context.Context, s *subjectmapping.SubjectConditionSetCreate) (*policy.SubjectConditionSet, error)
- func (c PolicyDBClient) CreateSubjectMapping(ctx context.Context, s *subjectmapping.CreateSubjectMappingRequest) (*policy.SubjectMapping, error)
- func (c PolicyDBClient) DeactivateAttribute(ctx context.Context, id string) (*policy.Attribute, error)
- func (c PolicyDBClient) DeactivateAttributeValue(ctx context.Context, id string) (*policy.Value, error)
- func (c PolicyDBClient) DeactivateNamespace(ctx context.Context, id string) (*policy.Namespace, error)
- func (c PolicyDBClient) DeleteAllUnmappedSubjectConditionSets(ctx context.Context) ([]*policy.SubjectConditionSet, error)
- func (c PolicyDBClient) DeleteKeyAccessServer(ctx context.Context, id string) (*policy.KeyAccessServer, error)
- func (c PolicyDBClient) DeleteResourceMapping(ctx context.Context, id string) (*policy.ResourceMapping, error)
- func (c PolicyDBClient) DeleteResourceMappingGroup(ctx context.Context, id string) (*policy.ResourceMappingGroup, error)
- func (c PolicyDBClient) DeleteSubjectConditionSet(ctx context.Context, id string) (*policy.SubjectConditionSet, error)
- func (c PolicyDBClient) DeleteSubjectMapping(ctx context.Context, id string) (*policy.SubjectMapping, error)
- func (c PolicyDBClient) GetAttribute(ctx context.Context, id string) (*policy.Attribute, error)
- func (c PolicyDBClient) GetAttributeByFqn(ctx context.Context, fqn string) (*policy.Attribute, error)
- func (c PolicyDBClient) GetAttributeValue(ctx context.Context, id string) (*policy.Value, error)
- func (c PolicyDBClient) GetAttributesByNamespace(ctx context.Context, namespaceID string) ([]*policy.Attribute, error)
- func (c *PolicyDBClient) GetAttributesByValueFqns(ctx context.Context, r *attributes.GetAttributeValuesByFqnsRequest) (map[string]*attributes.GetAttributeValuesByFqnsResponse_AttributeAndValue, ...)
- func (c PolicyDBClient) GetKeyAccessServer(ctx context.Context, id string) (*policy.KeyAccessServer, error)
- func (c PolicyDBClient) GetMatchedSubjectMappings(ctx context.Context, properties []*policy.SubjectProperty) ([]*policy.SubjectMapping, error)
- func (c PolicyDBClient) GetNamespace(ctx context.Context, id string) (*policy.Namespace, error)
- func (c PolicyDBClient) GetResourceMapping(ctx context.Context, id string) (*policy.ResourceMapping, error)
- func (c PolicyDBClient) GetResourceMappingGroup(ctx context.Context, id string) (*policy.ResourceMappingGroup, error)
- func (c PolicyDBClient) GetSubjectConditionSet(ctx context.Context, id string) (*policy.SubjectConditionSet, error)
- func (c PolicyDBClient) GetSubjectMapping(ctx context.Context, id string) (*policy.SubjectMapping, error)
- func (c PolicyDBClient) ListAllAttributeValues(ctx context.Context) ([]*policy.Value, error)
- func (c PolicyDBClient) ListAllAttributes(ctx context.Context) ([]*policy.Attribute, error)
- func (c PolicyDBClient) ListAllNamespaces(ctx context.Context) ([]*policy.Namespace, error)
- func (c PolicyDBClient) ListAttributeValues(ctx context.Context, r *attributes.ListAttributeValuesRequest) (*attributes.ListAttributeValuesResponse, error)
- func (c PolicyDBClient) ListAttributes(ctx context.Context, r *attributes.ListAttributesRequest) (*attributes.ListAttributesResponse, error)
- func (c PolicyDBClient) ListAttributesByFqns(ctx context.Context, fqns []string) ([]*policy.Attribute, error)
- func (c PolicyDBClient) ListKeyAccessServerGrants(ctx context.Context, r *kasregistry.ListKeyAccessServerGrantsRequest) (*kasregistry.ListKeyAccessServerGrantsResponse, error)
- func (c PolicyDBClient) ListKeyAccessServers(ctx context.Context, r *kasregistry.ListKeyAccessServersRequest) (*kasregistry.ListKeyAccessServersResponse, error)
- func (c PolicyDBClient) ListNamespaces(ctx context.Context, r *namespaces.ListNamespacesRequest) (*namespaces.ListNamespacesResponse, error)
- func (c PolicyDBClient) ListResourceMappingGroups(ctx context.Context, r *resourcemapping.ListResourceMappingGroupsRequest) (*resourcemapping.ListResourceMappingGroupsResponse, error)
- func (c PolicyDBClient) ListResourceMappings(ctx context.Context, r *resourcemapping.ListResourceMappingsRequest) (*resourcemapping.ListResourceMappingsResponse, error)
- func (c PolicyDBClient) ListResourceMappingsByGroupFqns(ctx context.Context, fqns []string) (map[string]*resourcemapping.ResourceMappingsByGroup, error)
- func (c PolicyDBClient) ListSubjectConditionSets(ctx context.Context, r *subjectmapping.ListSubjectConditionSetsRequest) (*subjectmapping.ListSubjectConditionSetsResponse, error)
- func (c PolicyDBClient) ListSubjectMappings(ctx context.Context, r *subjectmapping.ListSubjectMappingsRequest) (*subjectmapping.ListSubjectMappingsResponse, error)
- func (c PolicyDBClient) RemoveKeyAccessServerFromAttribute(ctx context.Context, k *attributes.AttributeKeyAccessServer) (*attributes.AttributeKeyAccessServer, error)
- func (c PolicyDBClient) RemoveKeyAccessServerFromNamespace(ctx context.Context, k *namespaces.NamespaceKeyAccessServer) (*namespaces.NamespaceKeyAccessServer, error)
- func (c PolicyDBClient) RemoveKeyAccessServerFromValue(ctx context.Context, k *attributes.ValueKeyAccessServer) (*attributes.ValueKeyAccessServer, error)
- func (c *PolicyDBClient) RunInTx(ctx context.Context, query func(txClient *PolicyDBClient) error) error
- func (c PolicyDBClient) UnsafeDeleteAttribute(ctx context.Context, existing *policy.Attribute, fqn string) (*policy.Attribute, error)
- func (c PolicyDBClient) UnsafeDeleteAttributeValue(ctx context.Context, toDelete *policy.Value, ...) (*policy.Value, error)
- func (c PolicyDBClient) UnsafeDeleteNamespace(ctx context.Context, existing *policy.Namespace, fqn string) (*policy.Namespace, error)
- func (c PolicyDBClient) UnsafeReactivateAttribute(ctx context.Context, id string) (*policy.Attribute, error)
- func (c PolicyDBClient) UnsafeReactivateAttributeValue(ctx context.Context, id string) (*policy.Value, error)
- func (c PolicyDBClient) UnsafeReactivateNamespace(ctx context.Context, id string) (*policy.Namespace, error)
- func (c PolicyDBClient) UnsafeUpdateAttribute(ctx context.Context, r *unsafe.UnsafeUpdateAttributeRequest) (*policy.Attribute, error)
- func (c PolicyDBClient) UnsafeUpdateAttributeValue(ctx context.Context, r *unsafe.UnsafeUpdateAttributeValueRequest) (*policy.Value, error)
- func (c PolicyDBClient) UnsafeUpdateNamespace(ctx context.Context, id string, name string) (*policy.Namespace, error)
- func (c PolicyDBClient) UpdateAttribute(ctx context.Context, id string, r *attributes.UpdateAttributeRequest) (*policy.Attribute, error)
- func (c PolicyDBClient) UpdateAttributeValue(ctx context.Context, r *attributes.UpdateAttributeValueRequest) (*policy.Value, error)
- func (c PolicyDBClient) UpdateKeyAccessServer(ctx context.Context, id string, r *kasregistry.UpdateKeyAccessServerRequest) (*policy.KeyAccessServer, error)
- func (c PolicyDBClient) UpdateNamespace(ctx context.Context, id string, r *namespaces.UpdateNamespaceRequest) (*policy.Namespace, error)
- func (c PolicyDBClient) UpdateResourceMapping(ctx context.Context, id string, ...) (*policy.ResourceMapping, error)
- func (c PolicyDBClient) UpdateResourceMappingGroup(ctx context.Context, id string, ...) (*policy.ResourceMappingGroup, error)
- func (c PolicyDBClient) UpdateSubjectConditionSet(ctx context.Context, r *subjectmapping.UpdateSubjectConditionSetRequest) (*policy.SubjectConditionSet, error)
- func (c PolicyDBClient) UpdateSubjectMapping(ctx context.Context, r *subjectmapping.UpdateSubjectMappingRequest) (*policy.SubjectMapping, error)
- type Queries
- func (q *Queries) AssignKeyAccessServerToAttribute(ctx context.Context, arg AssignKeyAccessServerToAttributeParams) (int64, error)
- func (q *Queries) AssignKeyAccessServerToAttributeValue(ctx context.Context, arg AssignKeyAccessServerToAttributeValueParams) (int64, error)
- func (q *Queries) AssignKeyAccessServerToNamespace(ctx context.Context, arg AssignKeyAccessServerToNamespaceParams) (int64, error)
- func (q *Queries) CreateAttribute(ctx context.Context, arg CreateAttributeParams) (string, error)
- func (q *Queries) CreateAttributeValue(ctx context.Context, arg CreateAttributeValueParams) (string, error)
- func (q *Queries) CreateKeyAccessServer(ctx context.Context, arg CreateKeyAccessServerParams) (string, error)
- func (q *Queries) CreateNamespace(ctx context.Context, arg CreateNamespaceParams) (string, error)
- func (q *Queries) CreateResourceMapping(ctx context.Context, arg CreateResourceMappingParams) (string, error)
- func (q *Queries) CreateResourceMappingGroup(ctx context.Context, arg CreateResourceMappingGroupParams) (string, error)
- func (q *Queries) CreateSubjectConditionSet(ctx context.Context, arg CreateSubjectConditionSetParams) (string, error)
- func (q *Queries) CreateSubjectMapping(ctx context.Context, arg CreateSubjectMappingParams) (string, error)
- func (q *Queries) DeleteAllUnmappedSubjectConditionSets(ctx context.Context) ([]string, error)
- func (q *Queries) DeleteAttribute(ctx context.Context, id string) (int64, error)
- func (q *Queries) DeleteAttributeValue(ctx context.Context, id string) (int64, error)
- func (q *Queries) DeleteKeyAccessServer(ctx context.Context, id string) (int64, error)
- func (q *Queries) DeleteNamespace(ctx context.Context, id string) (int64, error)
- func (q *Queries) DeleteResourceMapping(ctx context.Context, id string) (int64, error)
- func (q *Queries) DeleteResourceMappingGroup(ctx context.Context, id string) (int64, error)
- func (q *Queries) DeleteSubjectConditionSet(ctx context.Context, id string) (int64, error)
- func (q *Queries) DeleteSubjectMapping(ctx context.Context, id string) (int64, error)
- func (q *Queries) GetAttribute(ctx context.Context, id string) (GetAttributeRow, error)
- func (q *Queries) GetAttributeValue(ctx context.Context, id string) (GetAttributeValueRow, error)
- func (q *Queries) GetKeyAccessServer(ctx context.Context, id string) (GetKeyAccessServerRow, error)
- func (q *Queries) GetNamespace(ctx context.Context, id string) (GetNamespaceRow, error)
- func (q *Queries) GetResourceMapping(ctx context.Context, id string) (GetResourceMappingRow, error)
- func (q *Queries) GetResourceMappingGroup(ctx context.Context, id string) (GetResourceMappingGroupRow, error)
- func (q *Queries) GetSubjectConditionSet(ctx context.Context, id string) (GetSubjectConditionSetRow, error)
- func (q *Queries) GetSubjectMapping(ctx context.Context, id string) (GetSubjectMappingRow, error)
- func (q *Queries) ListAttributeValues(ctx context.Context, arg ListAttributeValuesParams) ([]ListAttributeValuesRow, error)
- func (q *Queries) ListAttributesByDefOrValueFqns(ctx context.Context, fqns []string) ([]ListAttributesByDefOrValueFqnsRow, error)
- func (q *Queries) ListAttributesDetail(ctx context.Context, arg ListAttributesDetailParams) ([]ListAttributesDetailRow, error)
- func (q *Queries) ListAttributesSummary(ctx context.Context, arg ListAttributesSummaryParams) ([]ListAttributesSummaryRow, error)
- func (q *Queries) ListKeyAccessServerGrants(ctx context.Context, arg ListKeyAccessServerGrantsParams) ([]ListKeyAccessServerGrantsRow, error)
- func (q *Queries) ListKeyAccessServers(ctx context.Context, arg ListKeyAccessServersParams) ([]ListKeyAccessServersRow, error)
- func (q *Queries) ListNamespaces(ctx context.Context, arg ListNamespacesParams) ([]ListNamespacesRow, error)
- func (q *Queries) ListResourceMappingGroups(ctx context.Context, arg ListResourceMappingGroupsParams) ([]ListResourceMappingGroupsRow, error)
- func (q *Queries) ListResourceMappings(ctx context.Context, arg ListResourceMappingsParams) ([]ListResourceMappingsRow, error)
- func (q *Queries) ListResourceMappingsByFullyQualifiedGroup(ctx context.Context, arg ListResourceMappingsByFullyQualifiedGroupParams) ([]ListResourceMappingsByFullyQualifiedGroupRow, error)
- func (q *Queries) ListSubjectConditionSets(ctx context.Context, arg ListSubjectConditionSetsParams) ([]ListSubjectConditionSetsRow, error)
- func (q *Queries) ListSubjectMappings(ctx context.Context, arg ListSubjectMappingsParams) ([]ListSubjectMappingsRow, error)
- func (q *Queries) MatchSubjectMappings(ctx context.Context, selectors []string) ([]MatchSubjectMappingsRow, error)
- func (q *Queries) RemoveKeyAccessServerFromAttribute(ctx context.Context, arg RemoveKeyAccessServerFromAttributeParams) (int64, error)
- func (q *Queries) RemoveKeyAccessServerFromAttributeValue(ctx context.Context, arg RemoveKeyAccessServerFromAttributeValueParams) (int64, error)
- func (q *Queries) RemoveKeyAccessServerFromNamespace(ctx context.Context, arg RemoveKeyAccessServerFromNamespaceParams) (int64, error)
- func (q *Queries) UpdateAttribute(ctx context.Context, arg UpdateAttributeParams) (int64, error)
- func (q *Queries) UpdateAttributeValue(ctx context.Context, arg UpdateAttributeValueParams) (int64, error)
- func (q *Queries) UpdateKeyAccessServer(ctx context.Context, arg UpdateKeyAccessServerParams) (int64, error)
- func (q *Queries) UpdateNamespace(ctx context.Context, arg UpdateNamespaceParams) (int64, error)
- func (q *Queries) UpdateResourceMapping(ctx context.Context, arg UpdateResourceMappingParams) (int64, error)
- func (q *Queries) UpdateResourceMappingGroup(ctx context.Context, arg UpdateResourceMappingGroupParams) (int64, error)
- func (q *Queries) UpdateSubjectConditionSet(ctx context.Context, arg UpdateSubjectConditionSetParams) (int64, error)
- func (q *Queries) UpdateSubjectMapping(ctx context.Context, arg UpdateSubjectMappingParams) (int64, error)
- func (q *Queries) UpsertAttributeDefinitionFqn(ctx context.Context, attributeID string) ([]UpsertAttributeDefinitionFqnRow, error)
- func (q *Queries) UpsertAttributeNamespaceFqn(ctx context.Context, namespaceID string) ([]UpsertAttributeNamespaceFqnRow, error)
- func (q *Queries) UpsertAttributeValueFqn(ctx context.Context, valueID string) ([]UpsertAttributeValueFqnRow, error)
- func (q *Queries) WithTx(tx pgx.Tx) *Queries
- type RemoveKeyAccessServerFromAttributeParams
- type RemoveKeyAccessServerFromAttributeValueParams
- type RemoveKeyAccessServerFromNamespaceParams
- type ResourceMapping
- type ResourceMappingGroup
- type SubjectConditionSet
- type SubjectMapping
- type UpdateAttributeParams
- type UpdateAttributeValueParams
- type UpdateKeyAccessServerParams
- type UpdateNamespaceParams
- type UpdateResourceMappingGroupParams
- type UpdateResourceMappingParams
- type UpdateSubjectConditionSetParams
- type UpdateSubjectMappingParams
- type UpsertAttributeDefinitionFqnRow
- type UpsertAttributeNamespaceFqnRow
- type UpsertAttributeValueFqnRow
Constants ¶
This section is empty.
Variables ¶
var AttributeRuleTypeEnumPrefix = "ATTRIBUTE_RULE_TYPE_ENUM_"
Functions ¶
This section is empty.
Types ¶
type AssignKeyAccessServerToAttributeParams ¶ added in v0.4.25
type AssignKeyAccessServerToAttributeValueParams ¶ added in v0.4.25
type AssignKeyAccessServerToNamespaceParams ¶ added in v0.4.19
type AttributeDefinition ¶ added in v0.4.17
type AttributeDefinition struct {
// Primary key for the table
ID string `json:"id"`
// Foreign key to the parent namespace of the attribute definition
NamespaceID string `json:"namespace_id"`
// Name of the attribute (i.e. organization or classification), unique within the namespace
Name string `json:"name"`
// Rule for the attribute (see protos for options)
Rule AttributeDefinitionRule `json:"rule"`
// Metadata for the attribute definition (see protos for structure)
Metadata []byte `json:"metadata"`
// Active/Inactive state
Active bool `json:"active"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
// Order of value ids for the attribute (important for hierarchy rule)
ValuesOrder []string `json:"values_order"`
}
Table to store the definitions of attributes
type AttributeDefinitionKeyAccessGrant ¶ added in v0.4.17
type AttributeDefinitionKeyAccessGrant struct {
// Foreign key to the attribute definition
AttributeDefinitionID string `json:"attribute_definition_id"`
// Foreign key to the KAS registration
KeyAccessServerID string `json:"key_access_server_id"`
}
Table to store the grants of key access servers (KASs) to attribute definitions
type AttributeDefinitionRule ¶ added in v0.4.17
type AttributeDefinitionRule string
const ( AttributeDefinitionRuleUNSPECIFIED AttributeDefinitionRule = "UNSPECIFIED" AttributeDefinitionRuleALLOF AttributeDefinitionRule = "ALL_OF" AttributeDefinitionRuleANYOF AttributeDefinitionRule = "ANY_OF" AttributeDefinitionRuleHIERARCHY AttributeDefinitionRule = "HIERARCHY" )
func (*AttributeDefinitionRule) Scan ¶ added in v0.4.17
func (e *AttributeDefinitionRule) Scan(src interface{}) error
type AttributeFqn ¶ added in v0.4.17
type AttributeFqn struct {
// Primary key for the table
ID string `json:"id"`
// Foreign key to the namespace of the attribute
NamespaceID pgtype.UUID `json:"namespace_id"`
// Foreign key to the attribute definition
AttributeID pgtype.UUID `json:"attribute_id"`
// Foreign key to the attribute value
ValueID pgtype.UUID `json:"value_id"`
// Fully qualified name of the attribute (i.e. https://<namespace>/attr/<attribute name>/value/<value>)
Fqn string `json:"fqn"`
}
Table to store the fully qualified names of attributes for reverse lookup at their object IDs
type AttributeNamespace ¶ added in v0.4.17
type AttributeNamespace struct {
// Primary key for the table
ID string `json:"id"`
// Name of the namespace (i.e. example.com)
Name string `json:"name"`
// Active/Inactive state
Active bool `json:"active"`
// Metadata for the namespace (see protos for structure)
Metadata []byte `json:"metadata"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
}
Table to store the parent namespaces of platform policy attributes and related policy objects
type AttributeNamespaceKeyAccessGrant ¶ added in v0.4.19
type AttributeNamespaceKeyAccessGrant struct {
// Foreign key to the namespace of the KAS grant
NamespaceID string `json:"namespace_id"`
// Foreign key to the KAS registration
KeyAccessServerID string `json:"key_access_server_id"`
}
Table to store the grants of key access servers (KASs) to attribute namespaces
type AttributeValue ¶ added in v0.4.17
type AttributeValue struct {
// Primary key for the table
ID string `json:"id"`
// Foreign key to the parent attribute definition
AttributeDefinitionID string `json:"attribute_definition_id"`
// Value of the attribute (i.e. "manager" or "admin" on an attribute for titles), unique within the definition
Value string `json:"value"`
// Metadata for the attribute value (see protos for structure)
Metadata []byte `json:"metadata"`
// Active/Inactive state
Active bool `json:"active"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
}
Table to store the values of attributes
type AttributeValueKeyAccessGrant ¶ added in v0.4.17
type AttributeValueKeyAccessGrant struct {
// Foreign key to the attribute value
AttributeValueID string `json:"attribute_value_id"`
// Foreign key to the KAS registration
KeyAccessServerID string `json:"key_access_server_id"`
}
Table to store the grants of key access servers (KASs) to attribute values
type CreateAttributeParams ¶ added in v0.4.25
type CreateAttributeParams struct {
NamespaceID string `json:"namespace_id"`
Name string `json:"name"`
Rule AttributeDefinitionRule `json:"rule"`
Metadata []byte `json:"metadata"`
}
type CreateAttributeValueParams ¶ added in v0.4.25
type CreateKeyAccessServerParams ¶ added in v0.4.17
type CreateNamespaceParams ¶ added in v0.4.24
type CreateResourceMappingGroupParams ¶ added in v0.4.18
type CreateResourceMappingParams ¶ added in v0.4.25
type CreateSubjectConditionSetParams ¶ added in v0.4.25
type CreateSubjectMappingParams ¶ added in v0.4.25
type GetAttributeRow ¶ added in v0.4.25
type GetAttributeRow struct {
ID string `json:"id"`
AttributeName string `json:"attribute_name"`
Rule AttributeDefinitionRule `json:"rule"`
Metadata []byte `json:"metadata"`
NamespaceID string `json:"namespace_id"`
Active bool `json:"active"`
NamespaceName pgtype.Text `json:"namespace_name"`
Values []byte `json:"values"`
Grants []byte `json:"grants"`
Fqn pgtype.Text `json:"fqn"`
}
type GetAttributeValueRow ¶ added in v0.4.25
type GetKeyAccessServerRow ¶ added in v0.4.17
type GetNamespaceRow ¶ added in v0.4.19
type GetResourceMappingGroupRow ¶ added in v0.4.19
type GetResourceMappingRow ¶ added in v0.4.25
type GetSubjectConditionSetRow ¶ added in v0.4.25
type GetSubjectMappingRow ¶ added in v0.4.25
type KeyAccessServer ¶ added in v0.4.17
type KeyAccessServer struct {
// Primary key for the table
ID string `json:"id"`
// URI of the KAS
Uri string `json:"uri"`
// Public key of the KAS (see protos for structure/options)
PublicKey []byte `json:"public_key"`
// Metadata for the KAS (see protos for structure)
Metadata []byte `json:"metadata"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
// Optional common name of the KAS
Name pgtype.Text `json:"name"`
}
Table to store the known registrations of key access servers (KASs)
type ListAttributeValuesParams ¶ added in v0.4.25
type ListAttributeValuesRow ¶ added in v0.4.25
type ListAttributesByDefOrValueFqnsRow ¶ added in v0.4.25
type ListAttributesDetailParams ¶ added in v0.4.25
type ListAttributesDetailRow ¶ added in v0.4.25
type ListAttributesDetailRow struct {
ID string `json:"id"`
AttributeName string `json:"attribute_name"`
Rule AttributeDefinitionRule `json:"rule"`
Metadata []byte `json:"metadata"`
NamespaceID string `json:"namespace_id"`
Active bool `json:"active"`
NamespaceName pgtype.Text `json:"namespace_name"`
Values []byte `json:"values"`
Fqn pgtype.Text `json:"fqn"`
Total int64 `json:"total"`
}
type ListAttributesSummaryParams ¶ added in v0.4.30
type ListAttributesSummaryRow ¶ added in v0.4.25
type ListAttributesSummaryRow struct {
ID string `json:"id"`
AttributeName string `json:"attribute_name"`
Rule AttributeDefinitionRule `json:"rule"`
Metadata []byte `json:"metadata"`
NamespaceID string `json:"namespace_id"`
Active bool `json:"active"`
NamespaceName pgtype.Text `json:"namespace_name"`
Total int64 `json:"total"`
}
type ListConfig ¶ added in v0.4.30
type ListConfig struct {
// contains filtered or unexported fields
}
type ListKeyAccessServerGrantsParams ¶ added in v0.4.19
type ListKeyAccessServerGrantsRow ¶ added in v0.4.19
type ListKeyAccessServerGrantsRow struct {
KasID string `json:"kas_id"`
KasUri string `json:"kas_uri"`
KasName pgtype.Text `json:"kas_name"`
KasPublicKey []byte `json:"kas_public_key"`
KasMetadata []byte `json:"kas_metadata"`
AttributesGrants []byte `json:"attributes_grants"`
ValuesGrants []byte `json:"values_grants"`
NamespaceGrants []byte `json:"namespace_grants"`
Total int64 `json:"total"`
}
type ListKeyAccessServersParams ¶ added in v0.4.30
type ListKeyAccessServersRow ¶ added in v0.4.17
type ListNamespacesParams ¶ added in v0.4.30
type ListNamespacesRow ¶ added in v0.4.24
type ListResourceMappingGroupsParams ¶ added in v0.4.30
type ListResourceMappingGroupsRow ¶ added in v0.4.19
type ListResourceMappingsByFullyQualifiedGroupParams ¶ added in v0.4.19
type ListResourceMappingsByFullyQualifiedGroupRow ¶ added in v0.4.19
type ListResourceMappingsParams ¶ added in v0.4.30
type ListResourceMappingsRow ¶ added in v0.4.25
type ListSubjectConditionSetsParams ¶ added in v0.4.30
type ListSubjectConditionSetsRow ¶ added in v0.4.25
type ListSubjectMappingsParams ¶ added in v0.4.30
type ListSubjectMappingsRow ¶ added in v0.4.25
type MatchSubjectMappingsRow ¶ added in v0.4.27
type NullAttributeDefinitionRule ¶ added in v0.4.17
type NullAttributeDefinitionRule struct {
AttributeDefinitionRule AttributeDefinitionRule `json:"attribute_definition_rule"`
Valid bool `json:"valid"` // Valid is true if AttributeDefinitionRule is not NULL
}
func (*NullAttributeDefinitionRule) Scan ¶ added in v0.4.17
func (ns *NullAttributeDefinitionRule) Scan(value interface{}) error
Scan implements the Scanner interface.
type PolicyDBClient ¶
func (PolicyDBClient) AssignKeyAccessServerToAttribute ¶
func (c PolicyDBClient) AssignKeyAccessServerToAttribute(ctx context.Context, k *attributes.AttributeKeyAccessServer) (*attributes.AttributeKeyAccessServer, error)
func (PolicyDBClient) AssignKeyAccessServerToNamespace ¶ added in v0.4.19
func (c PolicyDBClient) AssignKeyAccessServerToNamespace(ctx context.Context, k *namespaces.NamespaceKeyAccessServer) (*namespaces.NamespaceKeyAccessServer, error)
func (PolicyDBClient) AssignKeyAccessServerToValue ¶
func (c PolicyDBClient) AssignKeyAccessServerToValue(ctx context.Context, k *attributes.ValueKeyAccessServer) (*attributes.ValueKeyAccessServer, error)
func (*PolicyDBClient) AttrFqnReindex ¶
func (c *PolicyDBClient) AttrFqnReindex(ctx context.Context) (res struct { Namespaces []struct { ID string Fqn string } Attributes []struct { ID string Fqn string } Values []struct { ID string Fqn string } }, )
AttrFqnReindex will reindex all namespace, attribute, and attribute_value FQNs
func (PolicyDBClient) CreateAttribute ¶
func (c PolicyDBClient) CreateAttribute(ctx context.Context, r *attributes.CreateAttributeRequest) (*policy.Attribute, error)
func (PolicyDBClient) CreateAttributeValue ¶
func (c PolicyDBClient) CreateAttributeValue(ctx context.Context, attributeID string, r *attributes.CreateAttributeValueRequest) (*policy.Value, error)
func (PolicyDBClient) CreateKeyAccessServer ¶ added in v0.2.0
func (c PolicyDBClient) CreateKeyAccessServer(ctx context.Context, r *kasregistry.CreateKeyAccessServerRequest) (*policy.KeyAccessServer, error)
func (PolicyDBClient) CreateNamespace ¶
func (c PolicyDBClient) CreateNamespace(ctx context.Context, r *namespaces.CreateNamespaceRequest) (*policy.Namespace, error)
func (PolicyDBClient) CreateResourceMapping ¶
func (c PolicyDBClient) CreateResourceMapping(ctx context.Context, r *resourcemapping.CreateResourceMappingRequest) (*policy.ResourceMapping, error)
func (PolicyDBClient) CreateResourceMappingGroup ¶ added in v0.4.19
func (c PolicyDBClient) CreateResourceMappingGroup(ctx context.Context, r *resourcemapping.CreateResourceMappingGroupRequest) (*policy.ResourceMappingGroup, error)
func (PolicyDBClient) CreateSubjectConditionSet ¶
func (c PolicyDBClient) CreateSubjectConditionSet(ctx context.Context, s *subjectmapping.SubjectConditionSetCreate) (*policy.SubjectConditionSet, error)
Creates a new subject condition set and returns it
func (PolicyDBClient) CreateSubjectMapping ¶
func (c PolicyDBClient) CreateSubjectMapping(ctx context.Context, s *subjectmapping.CreateSubjectMappingRequest) (*policy.SubjectMapping, error)
Creates a new subject mapping and returns it. If an existing subject condition set id is provided, it will be used. If a new subject condition set is provided, it will be created. The existing subject condition set id takes precedence.
func (PolicyDBClient) DeactivateAttribute ¶
func (PolicyDBClient) DeactivateAttributeValue ¶
func (PolicyDBClient) DeactivateNamespace ¶
func (PolicyDBClient) DeleteAllUnmappedSubjectConditionSets ¶ added in v0.4.27
func (c PolicyDBClient) DeleteAllUnmappedSubjectConditionSets(ctx context.Context) ([]*policy.SubjectConditionSet, error)
Deletes/prunes all subject condition sets not referenced within a subject mapping
func (PolicyDBClient) DeleteKeyAccessServer ¶ added in v0.2.0
func (c PolicyDBClient) DeleteKeyAccessServer(ctx context.Context, id string) (*policy.KeyAccessServer, error)
func (PolicyDBClient) DeleteResourceMapping ¶
func (c PolicyDBClient) DeleteResourceMapping(ctx context.Context, id string) (*policy.ResourceMapping, error)
func (PolicyDBClient) DeleteResourceMappingGroup ¶ added in v0.4.19
func (c PolicyDBClient) DeleteResourceMappingGroup(ctx context.Context, id string) (*policy.ResourceMappingGroup, error)
func (PolicyDBClient) DeleteSubjectConditionSet ¶
func (c PolicyDBClient) DeleteSubjectConditionSet(ctx context.Context, id string) (*policy.SubjectConditionSet, error)
Deletes specified subject condition set and returns the id of the deleted
func (PolicyDBClient) DeleteSubjectMapping ¶
func (c PolicyDBClient) DeleteSubjectMapping(ctx context.Context, id string) (*policy.SubjectMapping, error)
Deletes specified subject mapping and returns the id of the deleted
func (PolicyDBClient) GetAttribute ¶
func (PolicyDBClient) GetAttributeByFqn ¶
func (PolicyDBClient) GetAttributeValue ¶
func (PolicyDBClient) GetAttributesByNamespace ¶
func (*PolicyDBClient) GetAttributesByValueFqns ¶
func (c *PolicyDBClient) GetAttributesByValueFqns(ctx context.Context, r *attributes.GetAttributeValuesByFqnsRequest) (map[string]*attributes.GetAttributeValuesByFqnsResponse_AttributeAndValue, error)
func (PolicyDBClient) GetKeyAccessServer ¶ added in v0.2.0
func (c PolicyDBClient) GetKeyAccessServer(ctx context.Context, id string) (*policy.KeyAccessServer, error)
func (PolicyDBClient) GetMatchedSubjectMappings ¶
func (c PolicyDBClient) GetMatchedSubjectMappings(ctx context.Context, properties []*policy.SubjectProperty) ([]*policy.SubjectMapping, error)
GetMatchedSubjectMappings liberally returns a list of SubjectMappings based on the provided SubjectProperties. The SubjectMappings are returned if an external selector field matches.
NOTE: Any matched SubjectMappings cannot entitle without resolution of the Condition Sets returned. Each contains logic that must be applied to a subject Entity Representation to assure entitlement.
func (PolicyDBClient) GetNamespace ¶
func (PolicyDBClient) GetResourceMapping ¶
func (c PolicyDBClient) GetResourceMapping(ctx context.Context, id string) (*policy.ResourceMapping, error)
func (PolicyDBClient) GetResourceMappingGroup ¶ added in v0.4.19
func (c PolicyDBClient) GetResourceMappingGroup(ctx context.Context, id string) (*policy.ResourceMappingGroup, error)
func (PolicyDBClient) GetSubjectConditionSet ¶
func (c PolicyDBClient) GetSubjectConditionSet(ctx context.Context, id string) (*policy.SubjectConditionSet, error)
func (PolicyDBClient) GetSubjectMapping ¶
func (c PolicyDBClient) GetSubjectMapping(ctx context.Context, id string) (*policy.SubjectMapping, error)
func (PolicyDBClient) ListAllAttributeValues ¶
Loads all attribute values into memory by making iterative db roundtrip requests of defaultObjectListAllLimit size
func (PolicyDBClient) ListAllAttributes ¶
Loads all attributes into memory by making iterative db roundtrip requests of defaultObjectListAllLimit size
func (PolicyDBClient) ListAllNamespaces ¶ added in v0.4.30
Loads all namespaces into memory by making iterative db roundtrip requests of defaultObjectListAllLimit size
func (PolicyDBClient) ListAttributeValues ¶
func (c PolicyDBClient) ListAttributeValues(ctx context.Context, r *attributes.ListAttributeValuesRequest) (*attributes.ListAttributeValuesResponse, error)
func (PolicyDBClient) ListAttributes ¶ added in v0.4.25
func (c PolicyDBClient) ListAttributes(ctx context.Context, r *attributes.ListAttributesRequest) (*attributes.ListAttributesResponse, error)
func (PolicyDBClient) ListAttributesByFqns ¶ added in v0.4.25
func (PolicyDBClient) ListKeyAccessServerGrants ¶ added in v0.4.19
func (c PolicyDBClient) ListKeyAccessServerGrants(ctx context.Context, r *kasregistry.ListKeyAccessServerGrantsRequest) (*kasregistry.ListKeyAccessServerGrantsResponse, error)
func (PolicyDBClient) ListKeyAccessServers ¶ added in v0.2.0
func (c PolicyDBClient) ListKeyAccessServers(ctx context.Context, r *kasregistry.ListKeyAccessServersRequest) (*kasregistry.ListKeyAccessServersResponse, error)
func (PolicyDBClient) ListNamespaces ¶
func (c PolicyDBClient) ListNamespaces(ctx context.Context, r *namespaces.ListNamespacesRequest) (*namespaces.ListNamespacesResponse, error)
func (PolicyDBClient) ListResourceMappingGroups ¶ added in v0.4.19
func (c PolicyDBClient) ListResourceMappingGroups(ctx context.Context, r *resourcemapping.ListResourceMappingGroupsRequest) (*resourcemapping.ListResourceMappingGroupsResponse, error)
func (PolicyDBClient) ListResourceMappings ¶
func (c PolicyDBClient) ListResourceMappings(ctx context.Context, r *resourcemapping.ListResourceMappingsRequest) (*resourcemapping.ListResourceMappingsResponse, error)
func (PolicyDBClient) ListResourceMappingsByGroupFqns ¶ added in v0.4.19
func (c PolicyDBClient) ListResourceMappingsByGroupFqns(ctx context.Context, fqns []string) (map[string]*resourcemapping.ResourceMappingsByGroup, error)
func (PolicyDBClient) ListSubjectConditionSets ¶
func (c PolicyDBClient) ListSubjectConditionSets(ctx context.Context, r *subjectmapping.ListSubjectConditionSetsRequest) (*subjectmapping.ListSubjectConditionSetsResponse, error)
func (PolicyDBClient) ListSubjectMappings ¶
func (c PolicyDBClient) ListSubjectMappings(ctx context.Context, r *subjectmapping.ListSubjectMappingsRequest) (*subjectmapping.ListSubjectMappingsResponse, error)
func (PolicyDBClient) RemoveKeyAccessServerFromAttribute ¶
func (c PolicyDBClient) RemoveKeyAccessServerFromAttribute(ctx context.Context, k *attributes.AttributeKeyAccessServer) (*attributes.AttributeKeyAccessServer, error)
func (PolicyDBClient) RemoveKeyAccessServerFromNamespace ¶ added in v0.4.19
func (c PolicyDBClient) RemoveKeyAccessServerFromNamespace(ctx context.Context, k *namespaces.NamespaceKeyAccessServer) (*namespaces.NamespaceKeyAccessServer, error)
func (PolicyDBClient) RemoveKeyAccessServerFromValue ¶
func (c PolicyDBClient) RemoveKeyAccessServerFromValue(ctx context.Context, k *attributes.ValueKeyAccessServer) (*attributes.ValueKeyAccessServer, error)
func (*PolicyDBClient) RunInTx ¶ added in v0.4.31
func (c *PolicyDBClient) RunInTx(ctx context.Context, query func(txClient *PolicyDBClient) error) error
func (PolicyDBClient) UnsafeDeleteAttribute ¶ added in v0.4.8
func (PolicyDBClient) UnsafeDeleteAttributeValue ¶ added in v0.4.8
func (c PolicyDBClient) UnsafeDeleteAttributeValue(ctx context.Context, toDelete *policy.Value, r *unsafe.UnsafeDeleteAttributeValueRequest) (*policy.Value, error)
func (PolicyDBClient) UnsafeDeleteNamespace ¶ added in v0.4.7
func (PolicyDBClient) UnsafeReactivateAttribute ¶ added in v0.4.8
func (PolicyDBClient) UnsafeReactivateAttributeValue ¶ added in v0.4.8
func (PolicyDBClient) UnsafeReactivateNamespace ¶ added in v0.4.7
func (PolicyDBClient) UnsafeUpdateAttribute ¶ added in v0.4.8
func (c PolicyDBClient) UnsafeUpdateAttribute(ctx context.Context, r *unsafe.UnsafeUpdateAttributeRequest) (*policy.Attribute, error)
func (PolicyDBClient) UnsafeUpdateAttributeValue ¶ added in v0.4.8
func (c PolicyDBClient) UnsafeUpdateAttributeValue(ctx context.Context, r *unsafe.UnsafeUpdateAttributeValueRequest) (*policy.Value, error)
func (PolicyDBClient) UnsafeUpdateNamespace ¶ added in v0.4.7
func (c PolicyDBClient) UnsafeUpdateNamespace(ctx context.Context, id string, name string) (*policy.Namespace, error)
UNSAFE OPERATIONS
func (PolicyDBClient) UpdateAttribute ¶
func (c PolicyDBClient) UpdateAttribute(ctx context.Context, id string, r *attributes.UpdateAttributeRequest) (*policy.Attribute, error)
func (PolicyDBClient) UpdateAttributeValue ¶
func (c PolicyDBClient) UpdateAttributeValue(ctx context.Context, r *attributes.UpdateAttributeValueRequest) (*policy.Value, error)
func (PolicyDBClient) UpdateKeyAccessServer ¶ added in v0.2.0
func (c PolicyDBClient) UpdateKeyAccessServer(ctx context.Context, id string, r *kasregistry.UpdateKeyAccessServerRequest) (*policy.KeyAccessServer, error)
func (PolicyDBClient) UpdateNamespace ¶
func (c PolicyDBClient) UpdateNamespace(ctx context.Context, id string, r *namespaces.UpdateNamespaceRequest) (*policy.Namespace, error)
func (PolicyDBClient) UpdateResourceMapping ¶
func (c PolicyDBClient) UpdateResourceMapping(ctx context.Context, id string, r *resourcemapping.UpdateResourceMappingRequest) (*policy.ResourceMapping, error)
func (PolicyDBClient) UpdateResourceMappingGroup ¶ added in v0.4.19
func (c PolicyDBClient) UpdateResourceMappingGroup(ctx context.Context, id string, r *resourcemapping.UpdateResourceMappingGroupRequest) (*policy.ResourceMappingGroup, error)
func (PolicyDBClient) UpdateSubjectConditionSet ¶
func (c PolicyDBClient) UpdateSubjectConditionSet(ctx context.Context, r *subjectmapping.UpdateSubjectConditionSetRequest) (*policy.SubjectConditionSet, error)
Mutates provided fields and returns the updated subject condition set
func (PolicyDBClient) UpdateSubjectMapping ¶
func (c PolicyDBClient) UpdateSubjectMapping(ctx context.Context, r *subjectmapping.UpdateSubjectMappingRequest) (*policy.SubjectMapping, error)
Mutates provided fields and returns the updated subject mapping
type Queries ¶ added in v0.4.17
type Queries struct {
// contains filtered or unexported fields
}
func (*Queries) AssignKeyAccessServerToAttribute ¶ added in v0.4.25
func (q *Queries) AssignKeyAccessServerToAttribute(ctx context.Context, arg AssignKeyAccessServerToAttributeParams) (int64, error)
AssignKeyAccessServerToAttribute
INSERT INTO attribute_definition_key_access_grants (attribute_definition_id, key_access_server_id) VALUES ($1, $2)
func (*Queries) AssignKeyAccessServerToAttributeValue ¶ added in v0.4.25
func (q *Queries) AssignKeyAccessServerToAttributeValue(ctx context.Context, arg AssignKeyAccessServerToAttributeValueParams) (int64, error)
AssignKeyAccessServerToAttributeValue
INSERT INTO attribute_value_key_access_grants (attribute_value_id, key_access_server_id) VALUES ($1, $2)
func (*Queries) AssignKeyAccessServerToNamespace ¶ added in v0.4.19
func (q *Queries) AssignKeyAccessServerToNamespace(ctx context.Context, arg AssignKeyAccessServerToNamespaceParams) (int64, error)
AssignKeyAccessServerToNamespace
INSERT INTO attribute_namespace_key_access_grants (namespace_id, key_access_server_id) VALUES ($1, $2)
func (*Queries) CreateAttribute ¶ added in v0.4.25
CreateAttribute
INSERT INTO attribute_definitions (namespace_id, name, rule, metadata) VALUES ($1, $2, $3, $4) RETURNING id
func (*Queries) CreateAttributeValue ¶ added in v0.4.25
func (q *Queries) CreateAttributeValue(ctx context.Context, arg CreateAttributeValueParams) (string, error)
CreateAttributeValue
INSERT INTO attribute_values (attribute_definition_id, value, metadata) VALUES ($1, $2, $3) RETURNING id
func (*Queries) CreateKeyAccessServer ¶ added in v0.4.17
func (q *Queries) CreateKeyAccessServer(ctx context.Context, arg CreateKeyAccessServerParams) (string, error)
CreateKeyAccessServer
INSERT INTO key_access_servers (uri, public_key, name, metadata) VALUES ($1, $2, $3, $4) RETURNING id
func (*Queries) CreateNamespace ¶ added in v0.4.24
CreateNamespace
INSERT INTO attribute_namespaces (name, metadata) VALUES ($1, $2) RETURNING id
func (*Queries) CreateResourceMapping ¶ added in v0.4.25
func (q *Queries) CreateResourceMapping(ctx context.Context, arg CreateResourceMappingParams) (string, error)
CreateResourceMapping
INSERT INTO resource_mappings (attribute_value_id, terms, metadata, group_id) VALUES ($1, $2, $3, $4) RETURNING id
func (*Queries) CreateResourceMappingGroup ¶ added in v0.4.18
func (q *Queries) CreateResourceMappingGroup(ctx context.Context, arg CreateResourceMappingGroupParams) (string, error)
CreateResourceMappingGroup
INSERT INTO resource_mapping_groups (namespace_id, name, metadata) VALUES ($1, $2, $3) RETURNING id
func (*Queries) CreateSubjectConditionSet ¶ added in v0.4.25
func (q *Queries) CreateSubjectConditionSet(ctx context.Context, arg CreateSubjectConditionSetParams) (string, error)
CreateSubjectConditionSet
INSERT INTO subject_condition_set (condition, metadata) VALUES ($1, $2) RETURNING id
func (*Queries) CreateSubjectMapping ¶ added in v0.4.25
func (q *Queries) CreateSubjectMapping(ctx context.Context, arg CreateSubjectMappingParams) (string, error)
CreateSubjectMapping
INSERT INTO subject_mappings (attribute_value_id, actions, metadata, subject_condition_set_id) VALUES ($1, $2, $3, $4) RETURNING id
func (*Queries) DeleteAllUnmappedSubjectConditionSets ¶ added in v0.4.27
DeleteAllUnmappedSubjectConditionSets
DELETE FROM subject_condition_set WHERE id NOT IN (SELECT DISTINCT sm.subject_condition_set_id FROM subject_mappings sm) RETURNING id
func (*Queries) DeleteAttribute ¶ added in v0.4.25
DeleteAttribute
DELETE FROM attribute_definitions WHERE id = $1
func (*Queries) DeleteAttributeValue ¶ added in v0.4.25
DeleteAttributeValue
DELETE FROM attribute_values WHERE id = $1
func (*Queries) DeleteKeyAccessServer ¶ added in v0.4.17
DeleteKeyAccessServer
DELETE FROM key_access_servers WHERE id = $1
func (*Queries) DeleteNamespace ¶ added in v0.4.24
DeleteNamespace
DELETE FROM attribute_namespaces WHERE id = $1
func (*Queries) DeleteResourceMapping ¶ added in v0.4.25
DeleteResourceMapping
DELETE FROM resource_mappings WHERE id = $1
func (*Queries) DeleteResourceMappingGroup ¶ added in v0.4.18
DeleteResourceMappingGroup
DELETE FROM resource_mapping_groups WHERE id = $1
func (*Queries) DeleteSubjectConditionSet ¶ added in v0.4.25
DeleteSubjectConditionSet
DELETE FROM subject_condition_set WHERE id = $1
func (*Queries) DeleteSubjectMapping ¶ added in v0.4.25
DeleteSubjectMapping
DELETE FROM subject_mappings WHERE id = $1
func (*Queries) GetAttribute ¶ added in v0.4.25
GetAttribute
SELECT
ad.id,
ad.name as attribute_name,
ad.rule,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', ad.metadata -> 'labels', 'created_at', ad.created_at, 'updated_at', ad.updated_at)) AS metadata,
ad.namespace_id,
ad.active,
n.name as namespace_name,
JSON_AGG(
JSON_BUILD_OBJECT(
'id', avt.id,
'value', avt.value,
'active', avt.active,
'fqn', CONCAT(fqns.fqn, '/value/', avt.value)
) ORDER BY ARRAY_POSITION(ad.values_order, avt.id)
) AS values,
JSONB_AGG(
DISTINCT JSONB_BUILD_OBJECT(
'id', kas.id,
'uri', kas.uri,
'name', kas.name,
'public_key', kas.public_key
)
) FILTER (WHERE adkag.attribute_definition_id IS NOT NULL) AS grants,
fqns.fqn
FROM attribute_definitions ad
LEFT JOIN attribute_namespaces n ON n.id = ad.namespace_id
LEFT JOIN (
SELECT
av.id,
av.value,
av.active,
JSON_AGG(DISTINCT JSONB_BUILD_OBJECT('id', vkas.id,'uri', vkas.uri,'name', vkas.name,'public_key', vkas.public_key )) FILTER (WHERE vkas.id IS NOT NULL AND vkas.uri IS NOT NULL AND vkas.public_key IS NOT NULL) AS val_grants_arr,
av.attribute_definition_id
FROM attribute_values av
LEFT JOIN attribute_value_key_access_grants avg ON av.id = avg.attribute_value_id
LEFT JOIN key_access_servers vkas ON avg.key_access_server_id = vkas.id
GROUP BY av.id
) avt ON avt.attribute_definition_id = ad.id
LEFT JOIN attribute_definition_key_access_grants adkag ON adkag.attribute_definition_id = ad.id
LEFT JOIN key_access_servers kas ON kas.id = adkag.key_access_server_id
LEFT JOIN attribute_fqns fqns ON fqns.attribute_id = ad.id AND fqns.value_id IS NULL
WHERE ad.id = $1
GROUP BY ad.id, n.name, fqns.fqn
func (*Queries) GetAttributeValue ¶ added in v0.4.25
GetAttributeValue
SELECT
av.id,
av.value,
av.active,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', av.metadata -> 'labels', 'created_at', av.created_at, 'updated_at', av.updated_at)) as metadata,
av.attribute_definition_id,
fqns.fqn,
JSONB_AGG(
DISTINCT JSONB_BUILD_OBJECT(
'id', kas.id,
'uri', kas.uri,
'name', kas.name,
'public_key', kas.public_key
)
) FILTER (WHERE avkag.attribute_value_id IS NOT NULL) AS grants
FROM attribute_values av
LEFT JOIN attribute_fqns fqns ON av.id = fqns.value_id
LEFT JOIN attribute_value_key_access_grants avkag ON av.id = avkag.attribute_value_id
LEFT JOIN key_access_servers kas ON avkag.key_access_server_id = kas.id
WHERE av.id = $1
GROUP BY av.id, fqns.fqn
func (*Queries) GetKeyAccessServer ¶ added in v0.4.17
GetKeyAccessServer
SELECT id, uri, public_key, name,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', metadata -> 'labels', 'created_at', created_at, 'updated_at', updated_at)) as metadata
FROM key_access_servers
WHERE id = $1
func (*Queries) GetNamespace ¶ added in v0.4.19
GetNamespace
SELECT
ns.id,
ns.name,
ns.active,
fqns.fqn,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', ns.metadata -> 'labels', 'created_at', ns.created_at, 'updated_at', ns.updated_at)) as metadata,
JSONB_AGG(DISTINCT JSONB_BUILD_OBJECT(
'id', kas.id,
'uri', kas.uri,
'name', kas.name,
'public_key', kas.public_key
)) FILTER (WHERE kas_ns_grants.namespace_id IS NOT NULL) as grants
FROM attribute_namespaces ns
LEFT JOIN attribute_namespace_key_access_grants kas_ns_grants ON kas_ns_grants.namespace_id = ns.id
LEFT JOIN key_access_servers kas ON kas.id = kas_ns_grants.key_access_server_id
LEFT JOIN attribute_fqns fqns ON fqns.namespace_id = ns.id
WHERE ns.id = $1 AND fqns.attribute_id IS NULL AND fqns.value_id IS NULL
GROUP BY ns.id, fqns.fqn
func (*Queries) GetResourceMapping ¶ added in v0.4.25
GetResourceMapping
SELECT
m.id,
JSON_BUILD_OBJECT('id', av.id, 'value', av.value, 'fqn', fqns.fqn) as attribute_value,
m.terms,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', m.metadata -> 'labels', 'created_at', m.created_at, 'updated_at', m.updated_at)) as metadata,
COALESCE(m.group_id::TEXT, '')::TEXT as group_id
FROM resource_mappings m
LEFT JOIN attribute_values av on m.attribute_value_id = av.id
LEFT JOIN attribute_fqns fqns on av.id = fqns.value_id
WHERE m.id = $1
GROUP BY av.id, m.id, fqns.fqn
func (*Queries) GetResourceMappingGroup ¶ added in v0.4.18
func (q *Queries) GetResourceMappingGroup(ctx context.Context, id string) (GetResourceMappingGroupRow, error)
GetResourceMappingGroup
SELECT id, namespace_id, name,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', metadata -> 'labels', 'created_at', created_at, 'updated_at', updated_at)) as metadata
FROM resource_mapping_groups
WHERE id = $1
func (*Queries) GetSubjectConditionSet ¶ added in v0.4.25
func (q *Queries) GetSubjectConditionSet(ctx context.Context, id string) (GetSubjectConditionSetRow, error)
GetSubjectConditionSet
SELECT
id,
condition,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', metadata -> 'labels', 'created_at', created_at, 'updated_at', updated_at)) as metadata
FROM subject_condition_set
WHERE id = $1
func (*Queries) GetSubjectMapping ¶ added in v0.4.25
GetSubjectMapping
SELECT
sm.id,
sm.actions,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', sm.metadata -> 'labels', 'created_at', sm.created_at, 'updated_at', sm.updated_at)) AS metadata,
JSON_BUILD_OBJECT(
'id', scs.id,
'metadata', JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', scs.metadata -> 'labels', 'created_at', scs.created_at, 'updated_at', scs.updated_at)),
'subject_sets', scs.condition
) AS subject_condition_set,
JSON_BUILD_OBJECT('id', av.id,'value', av.value,'active', av.active) AS attribute_value
FROM subject_mappings sm
LEFT JOIN attribute_values av ON sm.attribute_value_id = av.id
LEFT JOIN subject_condition_set scs ON scs.id = sm.subject_condition_set_id
WHERE sm.id = $1
GROUP BY av.id, sm.id, scs.id
func (*Queries) ListAttributeValues ¶ added in v0.4.25
func (q *Queries) ListAttributeValues(ctx context.Context, arg ListAttributeValuesParams) ([]ListAttributeValuesRow, error)
-------------------------------------------------------------- ATTRIBUTE VALUES --------------------------------------------------------------
WITH counted AS (
SELECT COUNT(av.id) AS total
FROM attribute_values av
)
SELECT
av.id,
av.value,
av.active,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', av.metadata -> 'labels', 'created_at', av.created_at, 'updated_at', av.updated_at)) as metadata,
av.attribute_definition_id,
fqns.fqn,
counted.total
FROM attribute_values av
CROSS JOIN counted
LEFT JOIN attribute_fqns fqns ON av.id = fqns.value_id
WHERE (
($1::BOOLEAN IS NULL OR av.active = $1) AND
(NULLIF($2, '') IS NULL OR av.attribute_definition_id = $2::UUID)
)
LIMIT $4
OFFSET $3
func (*Queries) ListAttributesByDefOrValueFqns ¶ added in v0.4.25
func (q *Queries) ListAttributesByDefOrValueFqns(ctx context.Context, fqns []string) ([]ListAttributesByDefOrValueFqnsRow, error)
get the attribute definition for the provided value or definition fqn
WITH target_definition AS (
SELECT DISTINCT
ad.id,
ad.namespace_id,
ad.name,
ad.rule,
ad.active,
ad.values_order,
JSONB_AGG(
DISTINCT JSONB_BUILD_OBJECT(
'id', kas.id,
'uri', kas.uri,
'name', kas.name,
'public_key', kas.public_key
)
) FILTER (WHERE kas.id IS NOT NULL) AS grants
FROM attribute_fqns fqns
INNER JOIN attribute_definitions ad ON fqns.attribute_id = ad.id
LEFT JOIN attribute_definition_key_access_grants adkag ON ad.id = adkag.attribute_definition_id
LEFT JOIN key_access_servers kas ON adkag.key_access_server_id = kas.id
WHERE fqns.fqn = ANY($1::TEXT[])
AND ad.active = TRUE
GROUP BY ad.id
),
namespaces AS (
SELECT
n.id,
JSON_BUILD_OBJECT(
'id', n.id,
'name', n.name,
'active', n.active,
'fqn', fqns.fqn,
'grants', JSONB_AGG(
DISTINCT JSONB_BUILD_OBJECT(
'id', kas.id,
'uri', kas.uri,
'name', kas.name,
'public_key', kas.public_key
)
) FILTER (WHERE kas.id IS NOT NULL)
) AS namespace
FROM target_definition td
INNER JOIN attribute_namespaces n ON td.namespace_id = n.id
INNER JOIN attribute_fqns fqns ON n.id = fqns.namespace_id
LEFT JOIN attribute_namespace_key_access_grants ankag ON n.id = ankag.namespace_id
LEFT JOIN key_access_servers kas ON ankag.key_access_server_id = kas.id
WHERE n.active = TRUE
AND (fqns.attribute_id IS NULL AND fqns.value_id IS NULL)
GROUP BY n.id, fqns.fqn
),
value_grants AS (
SELECT
av.id,
JSON_AGG(
DISTINCT JSONB_BUILD_OBJECT(
'id', kas.id,
'uri', kas.uri,
'name', kas.name,
'public_key', kas.public_key
)
) FILTER (WHERE kas.id IS NOT NULL) AS grants
FROM target_definition td
LEFT JOIN attribute_values av on td.id = av.attribute_definition_id
LEFT JOIN attribute_value_key_access_grants avkag ON av.id = avkag.attribute_value_id
LEFT JOIN key_access_servers kas ON avkag.key_access_server_id = kas.id
GROUP BY av.id
),
value_subject_mappings AS (
SELECT
av.id,
JSON_AGG(
JSON_BUILD_OBJECT(
'id', sm.id,
'actions', sm.actions,
'subject_condition_set', JSON_BUILD_OBJECT(
'id', scs.id,
'subject_sets', scs.condition
)
)
) FILTER (WHERE sm.id IS NOT NULL) AS sub_maps
FROM target_definition td
LEFT JOIN attribute_values av ON td.id = av.attribute_definition_id
LEFT JOIN subject_mappings sm ON av.id = sm.attribute_value_id
LEFT JOIN subject_condition_set scs ON sm.subject_condition_set_id = scs.id
GROUP BY av.id
),
values AS (
SELECT
av.attribute_definition_id,
JSON_AGG(
JSON_BUILD_OBJECT(
'id', av.id,
'value', av.value,
'active', av.active,
'fqn', fqns.fqn,
'grants', avg.grants,
'subject_mappings', avsm.sub_maps
-- enforce order of values in response
) ORDER BY ARRAY_POSITION(td.values_order, av.id)
) AS values
FROM target_definition td
LEFT JOIN attribute_values av ON td.id = av.attribute_definition_id
LEFT JOIN attribute_fqns fqns ON av.id = fqns.value_id
LEFT JOIN value_grants avg ON av.id = avg.id
LEFT JOIN value_subject_mappings avsm ON av.id = avsm.id
WHERE av.active = TRUE
GROUP BY av.attribute_definition_id
)
SELECT
td.id,
td.name,
td.rule,
td.active,
n.namespace,
fqns.fqn,
values.values,
td.grants
FROM target_definition td
INNER JOIN attribute_fqns fqns ON td.id = fqns.attribute_id
INNER JOIN namespaces n ON td.namespace_id = n.id
LEFT JOIN values ON td.id = values.attribute_definition_id
WHERE fqns.value_id IS NULL
func (*Queries) ListAttributesDetail ¶ added in v0.4.25
func (q *Queries) ListAttributesDetail(ctx context.Context, arg ListAttributesDetailParams) ([]ListAttributesDetailRow, error)
-------------------------------------------------------------- ATTRIBUTES --------------------------------------------------------------
WITH counted AS (
SELECT COUNT(ad.id) AS total
FROM attribute_definitions ad
)
SELECT
ad.id,
ad.name as attribute_name,
ad.rule,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', ad.metadata -> 'labels', 'created_at', ad.created_at, 'updated_at', ad.updated_at)) AS metadata,
ad.namespace_id,
ad.active,
n.name as namespace_name,
JSON_AGG(
JSON_BUILD_OBJECT(
'id', avt.id,
'value', avt.value,
'active', avt.active,
'fqn', CONCAT(fqns.fqn, '/value/', avt.value)
) ORDER BY ARRAY_POSITION(ad.values_order, avt.id)
) AS values,
fqns.fqn,
counted.total
FROM attribute_definitions ad
CROSS JOIN counted
LEFT JOIN attribute_namespaces n ON n.id = ad.namespace_id
LEFT JOIN (
SELECT
av.id,
av.value,
av.active,
JSON_AGG(
DISTINCT JSONB_BUILD_OBJECT(
'id', vkas.id,
'uri', vkas.uri,
'name', vkas.name,
'public_key', vkas.public_key
)
) FILTER (WHERE vkas.id IS NOT NULL AND vkas.uri IS NOT NULL AND vkas.public_key IS NOT NULL) AS val_grants_arr,
av.attribute_definition_id
FROM attribute_values av
LEFT JOIN attribute_value_key_access_grants avg ON av.id = avg.attribute_value_id
LEFT JOIN key_access_servers vkas ON avg.key_access_server_id = vkas.id
GROUP BY av.id
) avt ON avt.attribute_definition_id = ad.id
LEFT JOIN attribute_fqns fqns ON fqns.attribute_id = ad.id AND fqns.value_id IS NULL
WHERE
($1::BOOLEAN IS NULL OR ad.active = $1) AND
(NULLIF($2, '') IS NULL OR ad.namespace_id = $2::uuid) AND
(NULLIF($3, '') IS NULL OR n.name = $3)
GROUP BY ad.id, n.name, fqns.fqn, counted.total
LIMIT $5
OFFSET $4
func (*Queries) ListAttributesSummary ¶ added in v0.4.25
func (q *Queries) ListAttributesSummary(ctx context.Context, arg ListAttributesSummaryParams) ([]ListAttributesSummaryRow, error)
ListAttributesSummary
WITH counted AS (
SELECT COUNT(ad.id) AS total FROM attribute_definitions ad
)
SELECT
ad.id,
ad.name as attribute_name,
ad.rule,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', ad.metadata -> 'labels', 'created_at', ad.created_at, 'updated_at', ad.updated_at)) AS metadata,
ad.namespace_id,
ad.active,
n.name as namespace_name,
counted.total
FROM attribute_definitions ad
CROSS JOIN counted
LEFT JOIN attribute_namespaces n ON n.id = ad.namespace_id
WHERE ad.namespace_id = $1
GROUP BY ad.id, n.name, counted.total
LIMIT $3
OFFSET $2
func (*Queries) ListKeyAccessServerGrants ¶ added in v0.4.19
func (q *Queries) ListKeyAccessServerGrants(ctx context.Context, arg ListKeyAccessServerGrantsParams) ([]ListKeyAccessServerGrantsRow, error)
-------------------------------------------------------------- KEY ACCESS SERVERS --------------------------------------------------------------
WITH listed AS (
SELECT
COUNT(*) OVER() AS total,
kas.id AS kas_id,
kas.uri AS kas_uri,
kas.name AS kas_name,
kas.public_key AS kas_public_key,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT(
'labels', kas.metadata -> 'labels',
'created_at', kas.created_at,
'updated_at', kas.updated_at
)) AS kas_metadata,
JSON_AGG(DISTINCT JSONB_BUILD_OBJECT(
'id', attrkag.attribute_definition_id,
'fqn', fqns_on_attr.fqn
)) FILTER (WHERE attrkag.attribute_definition_id IS NOT NULL) AS attributes_grants,
JSON_AGG(DISTINCT JSONB_BUILD_OBJECT(
'id', valkag.attribute_value_id,
'fqn', fqns_on_vals.fqn
)) FILTER (WHERE valkag.attribute_value_id IS NOT NULL) AS values_grants,
JSON_AGG(DISTINCT JSONB_BUILD_OBJECT(
'id', nskag.namespace_id,
'fqn', fqns_on_ns.fqn
)) FILTER (WHERE nskag.namespace_id IS NOT NULL) AS namespace_grants
FROM
key_access_servers kas
LEFT JOIN
attribute_definition_key_access_grants attrkag
ON kas.id = attrkag.key_access_server_id
LEFT JOIN
attribute_fqns fqns_on_attr
ON attrkag.attribute_definition_id = fqns_on_attr.attribute_id
AND fqns_on_attr.value_id IS NULL
LEFT JOIN
attribute_value_key_access_grants valkag
ON kas.id = valkag.key_access_server_id
LEFT JOIN
attribute_fqns fqns_on_vals
ON valkag.attribute_value_id = fqns_on_vals.value_id
LEFT JOIN
attribute_namespace_key_access_grants nskag
ON kas.id = nskag.key_access_server_id
LEFT JOIN
attribute_fqns fqns_on_ns
ON nskag.namespace_id = fqns_on_ns.namespace_id
AND fqns_on_ns.attribute_id IS NULL AND fqns_on_ns.value_id IS NULL
WHERE (NULLIF($3, '') IS NULL OR kas.id = $3::uuid)
AND (NULLIF($4, '') IS NULL OR kas.uri = $4::varchar)
AND (NULLIF($5, '') IS NULL OR kas.name = $5::varchar)
GROUP BY
kas.id
)
SELECT
listed.kas_id,
listed.kas_uri,
listed.kas_name,
listed.kas_public_key,
listed.kas_metadata,
listed.attributes_grants,
listed.values_grants,
listed.namespace_grants,
listed.total
FROM listed
LIMIT $2
OFFSET $1
func (*Queries) ListKeyAccessServers ¶ added in v0.4.17
func (q *Queries) ListKeyAccessServers(ctx context.Context, arg ListKeyAccessServersParams) ([]ListKeyAccessServersRow, error)
ListKeyAccessServers
WITH counted AS (
SELECT COUNT(kas.id) AS total
FROM key_access_servers kas
)
SELECT kas.id,
kas.uri,
kas.public_key,
kas.name AS kas_name,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', kas.metadata -> 'labels', 'created_at', kas.created_at, 'updated_at', kas.updated_at)) as metadata,
counted.total
FROM key_access_servers kas
CROSS JOIN counted
LIMIT $2
OFFSET $1
func (*Queries) ListNamespaces ¶ added in v0.4.24
func (q *Queries) ListNamespaces(ctx context.Context, arg ListNamespacesParams) ([]ListNamespacesRow, error)
-------------------------------------------------------------- NAMESPACES --------------------------------------------------------------
WITH counted AS (
SELECT COUNT(id) AS total FROM attribute_namespaces
)
SELECT
ns.id,
ns.name,
ns.active,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', ns.metadata -> 'labels', 'created_at', ns.created_at, 'updated_at', ns.updated_at)) as metadata,
fqns.fqn,
counted.total
FROM attribute_namespaces ns
CROSS JOIN counted
LEFT JOIN attribute_fqns fqns ON ns.id = fqns.namespace_id AND fqns.attribute_id IS NULL
WHERE ($1::BOOLEAN IS NULL OR ns.active = $1::BOOLEAN)
LIMIT $3
OFFSET $2
func (*Queries) ListResourceMappingGroups ¶ added in v0.4.18
func (q *Queries) ListResourceMappingGroups(ctx context.Context, arg ListResourceMappingGroupsParams) ([]ListResourceMappingGroupsRow, error)
-------------------------------------------------------------- RESOURCE MAPPING GROUPS --------------------------------------------------------------
WITH counted AS (
SELECT COUNT(rmg.id) AS total
FROM resource_mapping_groups rmg
)
SELECT rmg.id,
rmg.namespace_id,
rmg.name,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', rmg.metadata -> 'labels', 'created_at', rmg.created_at, 'updated_at', rmg.updated_at)) as metadata,
counted.total
FROM resource_mapping_groups rmg
CROSS JOIN counted
WHERE (NULLIF($1, '') IS NULL OR rmg.namespace_id = $1::uuid)
LIMIT $3
OFFSET $2
func (*Queries) ListResourceMappings ¶ added in v0.4.25
func (q *Queries) ListResourceMappings(ctx context.Context, arg ListResourceMappingsParams) ([]ListResourceMappingsRow, error)
-------------------------------------------------------------- RESOURCE MAPPING --------------------------------------------------------------
WITH counted AS (
SELECT COUNT(rm.id) AS total
FROM resource_mappings rm
)
SELECT
m.id,
JSON_BUILD_OBJECT('id', av.id, 'value', av.value, 'fqn', fqns.fqn) as attribute_value,
m.terms,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', m.metadata -> 'labels', 'created_at', m.created_at, 'updated_at', m.updated_at)) as metadata,
COALESCE(m.group_id::TEXT, '')::TEXT as group_id,
counted.total
FROM resource_mappings m
CROSS JOIN counted
LEFT JOIN attribute_values av on m.attribute_value_id = av.id
LEFT JOIN attribute_fqns fqns on av.id = fqns.value_id
WHERE (NULLIF($1, '') IS NULL OR m.group_id = $1::UUID)
GROUP BY av.id, m.id, fqns.fqn, counted.total
LIMIT $3
OFFSET $2
func (*Queries) ListResourceMappingsByFullyQualifiedGroup ¶ added in v0.4.19
func (q *Queries) ListResourceMappingsByFullyQualifiedGroup(ctx context.Context, arg ListResourceMappingsByFullyQualifiedGroupParams) ([]ListResourceMappingsByFullyQualifiedGroupRow, error)
CTE to cache the group JSON build since it will be the same for all mappings of the group
WITH groups_cte AS (
SELECT
g.id,
JSON_BUILD_OBJECT(
'id', g.id,
'namespace_id', g.namespace_id,
'name', g.name,
'metadata', JSON_STRIP_NULLS(JSON_BUILD_OBJECT(
'labels', g.metadata -> 'labels',
'created_at', g.created_at,
'updated_at', g.updated_at
))
) as group
FROM resource_mapping_groups g
JOIN attribute_namespaces ns on g.namespace_id = ns.id
WHERE ns.name = $1 AND g.name = $2
)
SELECT
m.id,
JSON_BUILD_OBJECT('id', av.id, 'value', av.value, 'fqn', fqns.fqn) as attribute_value,
m.terms,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', m.metadata -> 'labels', 'created_at', m.created_at, 'updated_at', m.updated_at)) as metadata,
g.group
FROM resource_mappings m
JOIN groups_cte g ON m.group_id = g.id
JOIN attribute_values av on m.attribute_value_id = av.id
JOIN attribute_fqns fqns on av.id = fqns.value_id
func (*Queries) ListSubjectConditionSets ¶ added in v0.4.25
func (q *Queries) ListSubjectConditionSets(ctx context.Context, arg ListSubjectConditionSetsParams) ([]ListSubjectConditionSetsRow, error)
-------------------------------------------------------------- SUBJECT CONDITION SETS --------------------------------------------------------------
WITH counted AS (
SELECT COUNT(scs.id) AS total
FROM subject_condition_set scs
)
SELECT
scs.id,
scs.condition,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', scs.metadata -> 'labels', 'created_at', scs.created_at, 'updated_at', scs.updated_at)) as metadata,
counted.total
FROM subject_condition_set scs
CROSS JOIN counted
LIMIT $2
OFFSET $1
func (*Queries) ListSubjectMappings ¶ added in v0.4.25
func (q *Queries) ListSubjectMappings(ctx context.Context, arg ListSubjectMappingsParams) ([]ListSubjectMappingsRow, error)
-------------------------------------------------------------- SUBJECT MAPPINGS --------------------------------------------------------------
WITH counted AS (
SELECT COUNT(sm.id) AS total
FROM subject_mappings sm
)
SELECT
sm.id,
sm.actions,
JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', sm.metadata -> 'labels', 'created_at', sm.created_at, 'updated_at', sm.updated_at)) AS metadata,
JSON_BUILD_OBJECT(
'id', scs.id,
'metadata', JSON_STRIP_NULLS(JSON_BUILD_OBJECT('labels', scs.metadata->'labels', 'created_at', scs.created_at, 'updated_at', scs.updated_at)),
'subject_sets', scs.condition
) AS subject_condition_set,
JSON_BUILD_OBJECT('id', av.id,'value', av.value,'active', av.active, 'fqn',fqns.fqn) AS attribute_value,
counted.total
FROM subject_mappings sm
CROSS JOIN counted
LEFT JOIN attribute_values av ON sm.attribute_value_id = av.id
LEFT JOIN attribute_fqns fqns ON av.id = fqns.value_id
LEFT JOIN subject_condition_set scs ON scs.id = sm.subject_condition_set_id
GROUP BY av.id, sm.id, scs.id, counted.total, fqns.fqn
LIMIT $2
OFFSET $1
func (*Queries) MatchSubjectMappings ¶ added in v0.4.27
func (q *Queries) MatchSubjectMappings(ctx context.Context, selectors []string) ([]MatchSubjectMappingsRow, error)
MatchSubjectMappings
SELECT
sm.id,
sm.actions,
JSON_BUILD_OBJECT(
'id', scs.id,
'subject_sets', scs.condition
) AS subject_condition_set,
JSON_BUILD_OBJECT('id', av.id,'value', av.value,'active', av.active) AS attribute_value
FROM subject_mappings sm
LEFT JOIN attribute_values av ON sm.attribute_value_id = av.id
LEFT JOIN attribute_definitions ad ON av.attribute_definition_id = ad.id
LEFT JOIN attribute_namespaces ns ON ad.namespace_id = ns.id
LEFT JOIN subject_condition_set scs ON scs.id = sm.subject_condition_set_id
WHERE ns.active = true AND ad.active = true and av.active = true AND EXISTS (
SELECT 1
FROM JSONB_ARRAY_ELEMENTS(scs.condition) AS ss, JSONB_ARRAY_ELEMENTS(ss->'conditionGroups') AS cg, JSONB_ARRAY_ELEMENTS(cg->'conditions') AS each_condition
WHERE (each_condition->>'subjectExternalSelectorValue' = ANY($1::TEXT[]))
)
GROUP BY av.id, sm.id, scs.id
func (*Queries) RemoveKeyAccessServerFromAttribute ¶ added in v0.4.25
func (q *Queries) RemoveKeyAccessServerFromAttribute(ctx context.Context, arg RemoveKeyAccessServerFromAttributeParams) (int64, error)
RemoveKeyAccessServerFromAttribute
DELETE FROM attribute_definition_key_access_grants WHERE attribute_definition_id = $1 AND key_access_server_id = $2
func (*Queries) RemoveKeyAccessServerFromAttributeValue ¶ added in v0.4.25
func (q *Queries) RemoveKeyAccessServerFromAttributeValue(ctx context.Context, arg RemoveKeyAccessServerFromAttributeValueParams) (int64, error)
RemoveKeyAccessServerFromAttributeValue
DELETE FROM attribute_value_key_access_grants WHERE attribute_value_id = $1 AND key_access_server_id = $2
func (*Queries) RemoveKeyAccessServerFromNamespace ¶ added in v0.4.19
func (q *Queries) RemoveKeyAccessServerFromNamespace(ctx context.Context, arg RemoveKeyAccessServerFromNamespaceParams) (int64, error)
RemoveKeyAccessServerFromNamespace
DELETE FROM attribute_namespace_key_access_grants WHERE namespace_id = $1 AND key_access_server_id = $2
func (*Queries) UpdateAttribute ¶ added in v0.4.25
UpdateAttribute: Unsafe and Safe Updates both
UPDATE attribute_definitions
SET
name = COALESCE($2, name),
rule = COALESCE($3, rule),
values_order = COALESCE($4, values_order),
metadata = COALESCE($5, metadata),
active = COALESCE($6, active)
WHERE id = $1
func (*Queries) UpdateAttributeValue ¶ added in v0.4.25
func (q *Queries) UpdateAttributeValue(ctx context.Context, arg UpdateAttributeValueParams) (int64, error)
UpdateAttributeValue: Safe and Unsafe Updates both
UPDATE attribute_values
SET
value = COALESCE($2, value),
active = COALESCE($3, active),
metadata = COALESCE($4, metadata)
WHERE id = $1
func (*Queries) UpdateKeyAccessServer ¶ added in v0.4.17
func (q *Queries) UpdateKeyAccessServer(ctx context.Context, arg UpdateKeyAccessServerParams) (int64, error)
UpdateKeyAccessServer
UPDATE key_access_servers
SET
uri = COALESCE($2, uri),
public_key = COALESCE($3, public_key),
name = COALESCE($4, name),
metadata = COALESCE($5, metadata)
WHERE id = $1
func (*Queries) UpdateNamespace ¶ added in v0.4.24
UpdateNamespace: both Safe and Unsafe Updates
UPDATE attribute_namespaces
SET
name = COALESCE($2, name),
active = COALESCE($3, active),
metadata = COALESCE($4, metadata)
WHERE id = $1
func (*Queries) UpdateResourceMapping ¶ added in v0.4.25
func (q *Queries) UpdateResourceMapping(ctx context.Context, arg UpdateResourceMappingParams) (int64, error)
UpdateResourceMapping
UPDATE resource_mappings
SET
attribute_value_id = COALESCE($2, attribute_value_id),
terms = COALESCE($3, terms),
metadata = COALESCE($4, metadata),
group_id = COALESCE($5, group_id)
WHERE id = $1
func (*Queries) UpdateResourceMappingGroup ¶ added in v0.4.18
func (q *Queries) UpdateResourceMappingGroup(ctx context.Context, arg UpdateResourceMappingGroupParams) (int64, error)
UpdateResourceMappingGroup
UPDATE resource_mapping_groups
SET
namespace_id = COALESCE($2, namespace_id),
name = COALESCE($3, name),
metadata = COALESCE($4, metadata)
WHERE id = $1
func (*Queries) UpdateSubjectConditionSet ¶ added in v0.4.25
func (q *Queries) UpdateSubjectConditionSet(ctx context.Context, arg UpdateSubjectConditionSetParams) (int64, error)
UpdateSubjectConditionSet
UPDATE subject_condition_set
SET
condition = COALESCE($2, condition),
metadata = COALESCE($3, metadata)
WHERE id = $1
func (*Queries) UpdateSubjectMapping ¶ added in v0.4.25
func (q *Queries) UpdateSubjectMapping(ctx context.Context, arg UpdateSubjectMappingParams) (int64, error)
UpdateSubjectMapping
UPDATE subject_mappings
SET
actions = COALESCE($2, actions),
metadata = COALESCE($3, metadata),
subject_condition_set_id = COALESCE($4, subject_condition_set_id)
WHERE id = $1
func (*Queries) UpsertAttributeDefinitionFqn ¶ added in v0.4.25
func (q *Queries) UpsertAttributeDefinitionFqn(ctx context.Context, attributeID string) ([]UpsertAttributeDefinitionFqnRow, error)
UpsertAttributeDefinitionFqn
WITH new_fqns_cte AS (
-- get attribute definition fqns
SELECT
ns.id as namespace_id,
ad.id as attribute_id,
NULL::UUID as value_id,
CONCAT('https://', ns.name, '/attr/', ad.name) AS fqn
FROM attribute_definitions ad
JOIN attribute_namespaces ns on ad.namespace_id = ns.id
WHERE ad.id = $1
UNION
-- get attribute value fqns
SELECT
ns.id as namespace_id,
ad.id as attribute_id,
av.id as value_id,
CONCAT('https://', ns.name, '/attr/', ad.name, '/value/', av.value) AS fqn
FROM attribute_values av
JOIN attribute_definitions ad on av.attribute_definition_id = ad.id
JOIN attribute_namespaces ns on ad.namespace_id = ns.id
WHERE ad.id = $1
)
INSERT INTO attribute_fqns (namespace_id, attribute_id, value_id, fqn)
SELECT
namespace_id,
attribute_id,
value_id,
fqn
FROM new_fqns_cte
ON CONFLICT (namespace_id, attribute_id, value_id)
DO UPDATE
SET fqn = EXCLUDED.fqn
RETURNING
COALESCE(namespace_id::TEXT, '')::TEXT as namespace_id,
COALESCE(attribute_id::TEXT, '')::TEXT as attribute_id,
COALESCE(value_id::TEXT, '')::TEXT as value_id,
fqn
func (*Queries) UpsertAttributeNamespaceFqn ¶ added in v0.4.25
func (q *Queries) UpsertAttributeNamespaceFqn(ctx context.Context, namespaceID string) ([]UpsertAttributeNamespaceFqnRow, error)
UpsertAttributeNamespaceFqn
WITH new_fqns_cte AS (
-- get namespace fqns
SELECT
ns.id as namespace_id,
NULL::UUID as attribute_id,
NULL::UUID as value_id,
CONCAT('https://', ns.name) AS fqn
FROM attribute_namespaces ns
WHERE ns.id = $1
UNION
-- get attribute definition fqns
SELECT
ns.id as namespace_id,
ad.id as attribute_id,
NULL::UUID as value_id,
CONCAT('https://', ns.name, '/attr/', ad.name) AS fqn
FROM attribute_definitions ad
JOIN attribute_namespaces ns on ad.namespace_id = ns.id
WHERE ns.id = $1
UNION
-- get attribute value fqns
SELECT
ns.id as namespace_id,
ad.id as attribute_id,
av.id as value_id,
CONCAT('https://', ns.name, '/attr/', ad.name, '/value/', av.value) AS fqn
FROM attribute_values av
JOIN attribute_definitions ad on av.attribute_definition_id = ad.id
JOIN attribute_namespaces ns on ad.namespace_id = ns.id
WHERE ns.id = $1
)
INSERT INTO attribute_fqns (namespace_id, attribute_id, value_id, fqn)
SELECT
namespace_id,
attribute_id,
value_id,
fqn
FROM new_fqns_cte
ON CONFLICT (namespace_id, attribute_id, value_id)
DO UPDATE
SET fqn = EXCLUDED.fqn
RETURNING
COALESCE(namespace_id::TEXT, '')::TEXT as namespace_id,
COALESCE(attribute_id::TEXT, '')::TEXT as attribute_id,
COALESCE(value_id::TEXT, '')::TEXT as value_id,
fqn
func (*Queries) UpsertAttributeValueFqn ¶ added in v0.4.25
func (q *Queries) UpsertAttributeValueFqn(ctx context.Context, valueID string) ([]UpsertAttributeValueFqnRow, error)
-------------------------------------------------------------- ATTRIBUTE FQN --------------------------------------------------------------
WITH new_fqns_cte AS (
-- get attribute value fqns
SELECT
ns.id as namespace_id,
ad.id as attribute_id,
av.id as value_id,
CONCAT('https://', ns.name, '/attr/', ad.name, '/value/', av.value) AS fqn
FROM attribute_values av
JOIN attribute_definitions ad on av.attribute_definition_id = ad.id
JOIN attribute_namespaces ns on ad.namespace_id = ns.id
WHERE av.id = $1
)
INSERT INTO attribute_fqns (namespace_id, attribute_id, value_id, fqn)
SELECT
namespace_id,
attribute_id,
value_id,
fqn
FROM new_fqns_cte
ON CONFLICT (namespace_id, attribute_id, value_id)
DO UPDATE
SET fqn = EXCLUDED.fqn
RETURNING
COALESCE(namespace_id::TEXT, '')::TEXT as namespace_id,
COALESCE(attribute_id::TEXT, '')::TEXT as attribute_id,
COALESCE(value_id::TEXT, '')::TEXT as value_id,
fqn
type RemoveKeyAccessServerFromAttributeParams ¶ added in v0.4.25
type RemoveKeyAccessServerFromAttributeValueParams ¶ added in v0.4.25
type RemoveKeyAccessServerFromNamespaceParams ¶ added in v0.4.19
type ResourceMapping ¶ added in v0.4.17
type ResourceMapping struct {
// Primary key for the table
ID string `json:"id"`
// Foreign key to the attribute value
AttributeValueID string `json:"attribute_value_id"`
// Terms to match against resource data (i.e. translations "roi", "rey", or "kung" in a terms list could map to the value "/attr/card/value/king")
Terms []string `json:"terms"`
// Metadata for the resource mapping (see protos for structure)
Metadata []byte `json:"metadata"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
// Foreign key to the parent group of the resource mapping (optional, a resource mapping may not be in a group)
GroupID pgtype.UUID `json:"group_id"`
}
Table to store associated terms that should map resource data to attribute values
type ResourceMappingGroup ¶ added in v0.4.18
type ResourceMappingGroup struct {
// Primary key for the table
ID string `json:"id"`
// Foreign key to the namespace of the attribute
NamespaceID string `json:"namespace_id"`
// Name for the group of resource mappings
Name string `json:"name"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
Metadata []byte `json:"metadata"`
}
Table to store the groups of resource mappings by unique namespace and group name combinations
type SubjectConditionSet ¶ added in v0.4.17
type SubjectConditionSet struct {
// Primary key for the table
ID string `json:"id"`
// Conditions that must be met for the subject entity to be entitled to the attribute value (see protos for JSON structure)
Condition []byte `json:"condition"`
// Metadata for the condition set (see protos for structure)
Metadata []byte `json:"metadata"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
}
Table to store sets of conditions that logically entitle subject entity representations to attribute values via a subject mapping
type SubjectMapping ¶ added in v0.4.17
type SubjectMapping struct {
// Primary key for the table
ID string `json:"id"`
// Foreign key to the attribute value
AttributeValueID string `json:"attribute_value_id"`
// Metadata for the subject mapping (see protos for structure)
Metadata []byte `json:"metadata"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
// Foreign key to the condition set that entitles the subject entity to the attribute value
SubjectConditionSetID pgtype.UUID `json:"subject_condition_set_id"`
// Actions that the subject entity can perform on the attribute value (see protos for details)
Actions []byte `json:"actions"`
}
Table to store conditions that logically entitle subject entity representations to attribute values