schema

package
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

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

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 NewResolver

func NewResolver() *Resolver

NewResolver returns an empty resolver.

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

type ValidationIssue struct {
	Field    string
	Severity string // "error" | "warning"
	Message  string
}

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL