Documentation
¶
Index ¶
- Constants
- func CreateCategory(db *database.Handler, cat Category) (uuid.UUID, error)
- func CreateComponent(db *database.Handler, c ComponentDefinition) (uuid.UUID, uuid.UUID, error)
- func CreateModel(db *database.Handler, cmodel Model) (uuid.UUID, error)
- func CreatePolicy(db *database.Handler, p PolicyDefinition) (uuid.UUID, uuid.UUID, error)
- func CreateRelationship(db *database.Handler, r RelationshipDefinition) (uuid.UUID, uuid.UUID, error)
- type Category
- type CategoryDB
- type CategoryFilter
- type ComponentDefinition
- type ComponentDefinitionDB
- type ComponentFilter
- type ComponentFormat
- type EntitySummary
- type HostFilter
- type MeshModelHostsWithEntitySummary
- type MeshplayHostSummaryDB
- type Model
- type ModelDB
- type ModelFilter
- type PolicyDefinition
- type PolicyDefinitionDB
- type PolicyFilter
- type RelationshipDefinition
- type RelationshipDefinitionDB
- type RelationshipFilter
- type TypeMeta
Constants ¶
const DefaultCategory = "Miscellaneous"
Variables ¶
This section is empty.
Functions ¶
func CreateComponent ¶
func CreatePolicy ¶
func CreateRelationship ¶
Types ¶
type Category ¶
type Category struct { ID uuid.UUID `json:"-" yaml:"-"` Name string `json:"name"` Metadata map[string]interface{} `json:"metadata" yaml:"metadata"` }
swagger:response Category
func (*Category) GetCategoryDB ¶
func (c *Category) GetCategoryDB(db *database.Handler) (catdb CategoryDB)
type CategoryDB ¶
type CategoryDB struct { ID uuid.UUID `json:"-"` Name string `json:"categoryName" gorm:"categoryName"` Metadata []byte `json:"categoryMetadata" gorm:"categoryMetadata"` }
func (*CategoryDB) GetCategory ¶
func (cdb *CategoryDB) GetCategory(db *database.Handler) (cat Category)
type CategoryFilter ¶
type CategoryFilter struct { Name string OrderOn string Greedy bool Sort string //asc or desc. Default behavior is asc Limit int //If 0 or unspecified then all records are returned and limit is not used Offset int }
func (*CategoryFilter) Create ¶
func (cf *CategoryFilter) Create(m map[string]interface{})
Create the filter from map[string]interface{}
type ComponentDefinition ¶
type ComponentDefinition struct { ID uuid.UUID `json:"-"` TypeMeta DisplayName string `json:"displayName" gorm:"displayName"` Format ComponentFormat `json:"format" yaml:"format"` HostName string `json:"hostname"` HostID uuid.UUID `json:"hostID"` DisplayHostName string `json:"displayhostname"` Metadata map[string]interface{} `json:"metadata" yaml:"metadata"` Model Model `json:"model"` Schema string `json:"schema,omitempty" yaml:"schema"` CreatedAt time.Time `json:"-"` UpdatedAt time.Time `json:"-"` }
swagger:response ComponentDefinition use NewComponent function for instantiating
func GetMeshModelComponents ¶
func GetMeshModelComponents(db *database.Handler, f ComponentFilter) (c []ComponentDefinition, count int64, unique int)
func (*ComponentDefinition) GetComponentDefinitionDB ¶
func (c *ComponentDefinition) GetComponentDefinitionDB() (cmd ComponentDefinitionDB)
func (ComponentDefinition) GetID ¶
func (c ComponentDefinition) GetID() uuid.UUID
func (ComponentDefinition) Type ¶
func (c ComponentDefinition) Type() types.CapabilityType
type ComponentDefinitionDB ¶
type ComponentDefinitionDB struct { ID uuid.UUID `json:"-"` ModelID uuid.UUID `json:"-" gorm:"index:idx_component_definition_dbs_model_id,column:modelID"` TypeMeta DisplayName string `json:"displayName" gorm:"displayName"` Format ComponentFormat `json:"format" yaml:"format"` Metadata []byte `json:"metadata" yaml:"metadata"` Schema string `json:"schema,omitempty" yaml:"schema"` CreatedAt time.Time `json:"-"` UpdatedAt time.Time `json:"-"` }
func (*ComponentDefinitionDB) GetComponentDefinition ¶
func (cmd *ComponentDefinitionDB) GetComponentDefinition(model Model) (c ComponentDefinition)
type ComponentFilter ¶
type ComponentFilter struct { Name string APIVersion string Greedy bool //when set to true - instead of an exact match, name will be matched as a substring Trim bool //when set to true - the schema is not returned DisplayName string ModelName string CategoryName string Version string Sort string //asc or desc. Default behavior is asc OrderOn string Limit int //If 0 or unspecified then all records are returned and limit is not used Offset int Annotations string //When this query parameter is "true", only components with the "isAnnotation" property set to true are returned. When this query parameter is "false", all components except those considered to be annotation components are returned. Any other value of the query parameter results in both annotations as well as non-annotation models being returned. }
func (*ComponentFilter) Create ¶
func (cf *ComponentFilter) Create(m map[string]interface{})
Create the filter from map[string]interface{}
type ComponentFormat ¶
type ComponentFormat string
const ( JSON ComponentFormat = "JSON" YAML ComponentFormat = "YAML" CUE ComponentFormat = "CUE" )
type EntitySummary ¶
type HostFilter ¶
type HostFilter struct { Name string Greedy bool //when set to true - instead of an exact match, name will be prefix matched Trim bool //when set to true - the schema is not returned DisplayName string Version string Sort string //asc or desc. Default behavior is asc OrderOn string Limit int //If 0 or unspecified then all records are returned and limit is not used Offset int }
type MeshModelHostsWithEntitySummary ¶
type MeshModelHostsWithEntitySummary struct { ID uuid.UUID `json:"id"` Hostname string `json:"hostname"` Port int `json:"port"` Summary EntitySummary `json:"summary"` }
type MeshplayHostSummaryDB ¶
type MeshplayHostSummaryDB struct { HostID uuid.UUID `json:"-" gorm:"id"` Hostname string `json:"-" gorm:"hostname"` Port int `json:"-" gorm:"port"` Models int64 `json:"-" gorm:"models"` Components int64 `json:"-" gorm:"components"` Relationships int64 `json:"-" gorm:"relationships"` Policies int64 `json:"-" gorm:"policies"` }
type Model ¶
type Model struct { ID uuid.UUID `json:"-" yaml:"-"` Name string `json:"name"` Version string `json:"version"` DisplayName string `json:"displayName" gorm:"modelDisplayName"` HostName string `json:"hostname"` HostID uuid.UUID `json:"hostID"` DisplayHostName string `json:"displayhostname"` Category Category `json:"category"` Metadata map[string]interface{} `json:"metadata" yaml:"modelMetadata"` Components []ComponentDefinitionDB `json:"components"` Relationships []RelationshipDefinitionDB `json:"relationships"` }
swagger:response Model
func (*Model) GetModelDB ¶
func (Model) Type ¶
func (m Model) Type() types.CapabilityType
type ModelDB ¶
type ModelDB struct { ID uuid.UUID `json:"-"` CategoryID uuid.UUID `json:"-" gorm:"categoryID"` Name string `json:"modelName" gorm:"modelName"` Version string `json:"version"` DisplayName string `json:"modelDisplayName" gorm:"modelDisplayName"` SubCategory string `json:"subCategory" gorm:"subCategory"` Metadata []byte `json:"modelMetadata" gorm:"modelMetadata"` }
type ModelFilter ¶
type ModelFilter struct { Name string Registrant string //name of the registrant for a given model DisplayName string //If Name is already passed, avoid passing Display name unless greedy=true, else the filter will translate to an AND returning only the models where name and display name match exactly. Ignore, if this behavior is expected. Greedy bool //when set to true - instead of an exact match, name will be prefix matched. Also an OR will be performed of name and display_name Version string Category string OrderOn string Sort string //asc or desc. Default behavior is asc Limit int //If 0 or unspecified then all records are returned and limit is not used Offset int Annotations string //When this query parameter is "true", only models with the "isAnnotation" property set to true are returned. When this query parameter is "false", all models except those considered to be annotation models are returned. Any other value of the query parameter results in both annoations as well as non-annotation models being returned. // When these are set to true, we also retrieve components/relationships associated with the model. Components bool Relationships bool }
func (*ModelFilter) Create ¶
func (cf *ModelFilter) Create(m map[string]interface{})
Create the filter from map[string]interface{}
type PolicyDefinition ¶
type PolicyDefinition struct { ID uuid.UUID `json:"-"` TypeMeta Model Model `json:"model"` SubType string `json:"subType" yaml:"subType"` Expression map[string]interface{} `json:"expression" yaml:"expression"` CreatedAt time.Time `json:"-"` UpdatedAt time.Time `json:"-"` }
func GetMeshModelPolicy ¶
func GetMeshModelPolicy(db *database.Handler, f PolicyFilter) (pl []PolicyDefinition)
func (PolicyDefinition) GetID ¶
func (p PolicyDefinition) GetID() uuid.UUID
func (*PolicyDefinition) GetPolicyDefinitionDB ¶
func (p *PolicyDefinition) GetPolicyDefinitionDB() (pdb PolicyDefinitionDB)
func (PolicyDefinition) Type ¶
func (p PolicyDefinition) Type() types.CapabilityType
type PolicyDefinitionDB ¶
type PolicyDefinitionDB struct { ID uuid.UUID `json:"-"` ModelID uuid.UUID `json:"-" gorm:"modelID"` TypeMeta SubType string `json:"subType" yaml:"subType"` Expression []byte `json:"expression" yaml:"expression"` CreatedAt time.Time `json:"-"` UpdatedAt time.Time `json:"-"` }
func (*PolicyDefinitionDB) GetPolicyDefinition ¶
func (pdb *PolicyDefinitionDB) GetPolicyDefinition(m Model) (p PolicyDefinition)
type PolicyFilter ¶
type PolicyFilter struct { Kind string Greedy bool SubType string ModelName string OrderOn string Sort string Limit int Offset int }
func (*PolicyFilter) Create ¶
func (pf *PolicyFilter) Create(m map[string]interface{})
type RelationshipDefinition ¶
type RelationshipDefinition struct { ID uuid.UUID `json:"-"` TypeMeta Model Model `json:"model"` HostName string `json:"hostname"` HostID uuid.UUID `json:"hostID"` DisplayHostName string `json:"displayhostname"` Metadata map[string]interface{} `json:"metadata" yaml:"metadata"` SubType string `json:"subType" yaml:"subType" gorm:"subType"` RegoQuery string `json:"rego_query" yaml:"rego_query" gorm:"rego_query"` Selectors map[string]interface{} `json:"selectors" yaml:"selectors"` CreatedAt time.Time `json:"-"` UpdatedAt time.Time `json:"-"` }
https://docs.google.com/drawings/d/1_qzQ_YxvCWPYrOBcdqGMlMwfbsZx96SBuIkbn8TfKhU/edit?pli=1 see RELATIONSHIPDEFINITIONS table in the diagram swagger:response RelationshipDefinition TODO: Add support for Model
func GetMeshModelRelationship ¶
func GetMeshModelRelationship(db *database.Handler, f RelationshipFilter) (r []RelationshipDefinition, count int64)
func (RelationshipDefinition) GetID ¶
func (r RelationshipDefinition) GetID() uuid.UUID
func (*RelationshipDefinition) GetRelationshipDefinitionDB ¶
func (r *RelationshipDefinition) GetRelationshipDefinitionDB() (rdb RelationshipDefinitionDB)
func (RelationshipDefinition) Type ¶
func (r RelationshipDefinition) Type() types.CapabilityType
type RelationshipDefinitionDB ¶
type RelationshipDefinitionDB struct { ID uuid.UUID `json:"-"` ModelID uuid.UUID `json:"-" gorm:"index:idx_relationship_definition_dbs_model_id,column:modelID"` TypeMeta Metadata []byte `json:"metadata" yaml:"metadata"` SubType string `json:"subType" yaml:"subType"` RegoQuery string `json:"rego_query" yaml:"rego_query" gorm:"rego_query"` Selectors []byte `json:"selectors" yaml:"selectors"` CreatedAt time.Time `json:"-"` UpdatedAt time.Time `json:"-"` }
func (*RelationshipDefinitionDB) GetRelationshipDefinition ¶
func (rdb *RelationshipDefinitionDB) GetRelationshipDefinition(m Model) (r RelationshipDefinition)
type RelationshipFilter ¶
type RelationshipFilter struct { Kind string Greedy bool //when set to true - instead of an exact match, kind will be prefix matched SubType string Version string ModelName string OrderOn string Sort string //asc or desc. Default behavior is asc Limit int //If 0 or unspecified then all records are returned and limit is not used Offset int }
For now, only filtering by Kind and SubType are allowed. In the future, we will add support to query using `selectors` (using CUE) TODO: Add support for Model
func (*RelationshipFilter) Create ¶
func (rf *RelationshipFilter) Create(m map[string]interface{})
Create the filter from map[string]interface{}