Documentation
¶
Overview ¶
Package schema defines seed entity and relationship types and provides loose validation helpers. Validation is intentionally permissive in v0.1; strict enforcement arrives in v0.7.
Index ¶
- func HasErrors(issues []ValidationIssue) bool
- func SeedEntityTypes(peerDID string) []*types.EntityTypeDefinition
- func SeedRelationshipTypes(peerDID string) []*types.RelationshipTypeDefinition
- type Resolver
- func (r *Resolver) EntityType(peerDID, name string) (*types.EntityTypeDefinition, error)
- func (r *Resolver) EntityTypes(peerDID string) []*types.EntityTypeDefinition
- func (r *Resolver) RegisterEntityType(peerDID string, def *types.EntityTypeDefinition)
- func (r *Resolver) RegisterRelationType(peerDID string, def *types.RelationshipTypeDefinition)
- func (r *Resolver) RelationType(peerDID, name string) (*types.RelationshipTypeDefinition, error)
- func (r *Resolver) RelationTypes(peerDID string) []*types.RelationshipTypeDefinition
- type ValidationIssue
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HasErrors ¶
func HasErrors(issues []ValidationIssue) bool
HasErrors reports whether any issue has Severity == "error".
func SeedEntityTypes ¶
func SeedEntityTypes(peerDID string) []*types.EntityTypeDefinition
SeedEntityTypes returns the entity-type definitions every fresh peer ships with. They are starter types — users keep, modify, extend, or supplement.
func SeedRelationshipTypes ¶
func SeedRelationshipTypes(peerDID string) []*types.RelationshipTypeDefinition
SeedRelationshipTypes returns the relationship-type definitions every fresh peer ships with.
Types ¶
type Resolver ¶
type Resolver struct {
// contains filtered or unexported fields
}
Resolver is the in-memory registry of entity and relationship type definitions, keyed by peer DID. Federation handlers consult it on every write to avoid Store roundtrips during validation.
The Store remains the durable source of truth; Resolver is a cache. Wiring code is responsible for re-hydrating the resolver from the Store at startup.
func (*Resolver) EntityType ¶
func (r *Resolver) EntityType(peerDID, name string) (*types.EntityTypeDefinition, error)
EntityType returns the named entity-type definition, or an error.
func (*Resolver) EntityTypes ¶
func (r *Resolver) EntityTypes(peerDID string) []*types.EntityTypeDefinition
EntityTypes returns all entity-type definitions registered for a peer, ordered by name.
func (*Resolver) RegisterEntityType ¶
func (r *Resolver) RegisterEntityType(peerDID string, def *types.EntityTypeDefinition)
RegisterEntityType adds or replaces an entity-type definition for a peer.
func (*Resolver) RegisterRelationType ¶
func (r *Resolver) RegisterRelationType(peerDID string, def *types.RelationshipTypeDefinition)
RegisterRelationType adds or replaces a relationship-type definition.
func (*Resolver) RelationType ¶
func (r *Resolver) RelationType(peerDID, name string) (*types.RelationshipTypeDefinition, error)
RelationType returns the named relationship-type definition, or an error.
func (*Resolver) RelationTypes ¶
func (r *Resolver) RelationTypes(peerDID string) []*types.RelationshipTypeDefinition
RelationTypes returns all relationship-type definitions registered for a peer, ordered by name.
type ValidationIssue ¶
ValidationIssue describes one problem with a write. Severity "error" should block the write; "warning" should be logged and accepted in v0.1.
func ValidateEntity ¶
func ValidateEntity(def *types.EntityTypeDefinition, fields map[string]any) []ValidationIssue
ValidateEntity applies loose v0.1 validation: required fields must be present (error); type mismatches and unknown fields produce warnings only. Defaults are applied in-place when missing.