entdb

package
v0.4.2 Latest Latest
Warning

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

Go to latest
Published: May 10, 2026 License: AGPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DataPolicy_name = map[int32]string{
		0: "DATA_POLICY_PERSONAL",
		1: "DATA_POLICY_BUSINESS",
		2: "DATA_POLICY_FINANCIAL",
		3: "DATA_POLICY_AUDIT",
		4: "DATA_POLICY_EPHEMERAL",
		5: "DATA_POLICY_HEALTHCARE",
	}
	DataPolicy_value = map[string]int32{
		"DATA_POLICY_PERSONAL":   0,
		"DATA_POLICY_BUSINESS":   1,
		"DATA_POLICY_FINANCIAL":  2,
		"DATA_POLICY_AUDIT":      3,
		"DATA_POLICY_EPHEMERAL":  4,
		"DATA_POLICY_HEALTHCARE": 5,
	}
)

Enum value maps for DataPolicy.

View Source
var (
	SubjectExitPolicy_name = map[int32]string{
		0: "SUBJECT_EXIT_BOTH",
		1: "SUBJECT_EXIT_FROM",
		2: "SUBJECT_EXIT_TO",
	}
	SubjectExitPolicy_value = map[string]int32{
		"SUBJECT_EXIT_BOTH": 0,
		"SUBJECT_EXIT_FROM": 1,
		"SUBJECT_EXIT_TO":   2,
	}
)

Enum value maps for SubjectExitPolicy.

View Source
var (
	CoreCapability_name = map[int32]string{
		0: "CORE_CAP_UNSPECIFIED",
		1: "CORE_CAP_READ",
		2: "CORE_CAP_COMMENT",
		3: "CORE_CAP_EDIT",
		4: "CORE_CAP_DELETE",
		5: "CORE_CAP_ADMIN",
	}
	CoreCapability_value = map[string]int32{
		"CORE_CAP_UNSPECIFIED": 0,
		"CORE_CAP_READ":        1,
		"CORE_CAP_COMMENT":     2,
		"CORE_CAP_EDIT":        3,
		"CORE_CAP_DELETE":      4,
		"CORE_CAP_ADMIN":       5,
	}
)

Enum value maps for CoreCapability.

View Source
var (
	// Mark a message as an EntDB node type
	//
	// optional entdb.NodeOpts node = 50100;
	E_Node = &file_entdb_entdb_options_proto_extTypes[0]
	// Mark a message as an EntDB edge type (fields become edge props)
	//
	// optional entdb.EdgeOpts edge = 50101;
	E_Edge = &file_entdb_entdb_options_proto_extTypes[1]
)

Extension fields to descriptorpb.MessageOptions.

View Source
var (
	// EntDB field-level options
	//
	// optional entdb.FieldOpts field = 50102;
	E_Field = &file_entdb_entdb_options_proto_extTypes[2]
)

Extension fields to descriptorpb.FieldOptions.

View Source
var File_entdb_entdb_options_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type CapabilityImplication

type CapabilityImplication struct {
	Core        CoreCapability   `protobuf:"varint,1,opt,name=core,proto3,enum=entdb.CoreCapability" json:"core,omitempty"` // one-of with ext
	Ext         int32            `protobuf:"varint,2,opt,name=ext,proto3" json:"ext,omitempty"`
	ImpliesCore []CoreCapability `` /* 128-byte string literal not displayed */
	ImpliesExt  []int32          `protobuf:"varint,4,rep,packed,name=implies_ext,json=impliesExt,proto3" json:"implies_ext,omitempty"`
	// contains filtered or unexported fields
}

Declares that holding “core“/“ext“ implies all of the capabilities listed in “implies_core“/“implies_ext“. Merged with the built-in ADMIN > EDIT > COMMENT > READ hierarchy.

func (*CapabilityImplication) Descriptor deprecated

func (*CapabilityImplication) Descriptor() ([]byte, []int)

Deprecated: Use CapabilityImplication.ProtoReflect.Descriptor instead.

func (*CapabilityImplication) GetCore

func (*CapabilityImplication) GetExt

func (x *CapabilityImplication) GetExt() int32

func (*CapabilityImplication) GetImpliesCore

func (x *CapabilityImplication) GetImpliesCore() []CoreCapability

func (*CapabilityImplication) GetImpliesExt

func (x *CapabilityImplication) GetImpliesExt() []int32

func (*CapabilityImplication) ProtoMessage

func (*CapabilityImplication) ProtoMessage()

func (*CapabilityImplication) ProtoReflect

func (x *CapabilityImplication) ProtoReflect() protoreflect.Message

func (*CapabilityImplication) Reset

func (x *CapabilityImplication) Reset()

func (*CapabilityImplication) String

func (x *CapabilityImplication) String() string

type CapabilityMapping

type CapabilityMapping struct {
	Op           string         `protobuf:"bytes,1,opt,name=op,proto3" json:"op,omitempty"`                                                                    // e.g. "UpdateNode", "CreateChild"
	Field        string         `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"`                                                              // optional field filter
	FieldValue   string         `protobuf:"bytes,3,opt,name=field_value,json=fieldValue,proto3" json:"field_value,omitempty"`                                  // optional field-value filter
	ChildType    string         `protobuf:"bytes,4,opt,name=child_type,json=childType,proto3" json:"child_type,omitempty"`                                     // optional child-type filter
	RequiredCore CoreCapability `protobuf:"varint,5,opt,name=required_core,json=requiredCore,proto3,enum=entdb.CoreCapability" json:"required_core,omitempty"` // one-of with required_ext
	RequiredExt  int32          `protobuf:"varint,6,opt,name=required_ext,json=requiredExt,proto3" json:"required_ext,omitempty"`                              // enum value from extension_capability_enum
	// contains filtered or unexported fields
}

Mapping from a server op (optionally narrowed by field / field_value / child_type) to the capability required to perform it on a given node type. If “required_core“ is set, “required_ext“ must be 0 (unset) and vice versa.

func (*CapabilityMapping) Descriptor deprecated

func (*CapabilityMapping) Descriptor() ([]byte, []int)

Deprecated: Use CapabilityMapping.ProtoReflect.Descriptor instead.

func (*CapabilityMapping) GetChildType

func (x *CapabilityMapping) GetChildType() string

func (*CapabilityMapping) GetField

func (x *CapabilityMapping) GetField() string

func (*CapabilityMapping) GetFieldValue

func (x *CapabilityMapping) GetFieldValue() string

func (*CapabilityMapping) GetOp

func (x *CapabilityMapping) GetOp() string

func (*CapabilityMapping) GetRequiredCore

func (x *CapabilityMapping) GetRequiredCore() CoreCapability

func (*CapabilityMapping) GetRequiredExt

func (x *CapabilityMapping) GetRequiredExt() int32

func (*CapabilityMapping) ProtoMessage

func (*CapabilityMapping) ProtoMessage()

func (*CapabilityMapping) ProtoReflect

func (x *CapabilityMapping) ProtoReflect() protoreflect.Message

func (*CapabilityMapping) Reset

func (x *CapabilityMapping) Reset()

func (*CapabilityMapping) String

func (x *CapabilityMapping) String() string

type CoreCapability

type CoreCapability int32

Universal, built-in capabilities shipped with EntDB. These are checked by the ACL engine for every typed operation. User-defined extension capabilities live in per-type enums declared via the “extension_capability_enum“ NodeOpts field below.

const (
	CoreCapability_CORE_CAP_UNSPECIFIED CoreCapability = 0
	CoreCapability_CORE_CAP_READ        CoreCapability = 1
	CoreCapability_CORE_CAP_COMMENT     CoreCapability = 2
	CoreCapability_CORE_CAP_EDIT        CoreCapability = 3
	CoreCapability_CORE_CAP_DELETE      CoreCapability = 4
	CoreCapability_CORE_CAP_ADMIN       CoreCapability = 5
)

func (CoreCapability) Descriptor

func (CoreCapability) Enum

func (x CoreCapability) Enum() *CoreCapability

func (CoreCapability) EnumDescriptor deprecated

func (CoreCapability) EnumDescriptor() ([]byte, []int)

Deprecated: Use CoreCapability.Descriptor instead.

func (CoreCapability) Number

func (CoreCapability) String

func (x CoreCapability) String() string

func (CoreCapability) Type

type DataPolicy

type DataPolicy int32

Data classification for GDPR compliance

const (
	DataPolicy_DATA_POLICY_PERSONAL   DataPolicy = 0 // user's own data, fully exportable, DELETE on exit
	DataPolicy_DATA_POLICY_BUSINESS   DataPolicy = 1 // business data, contributions exportable, ANONYMIZE on exit
	DataPolicy_DATA_POLICY_FINANCIAL  DataPolicy = 2 // legal retention required, RETAIN + ANONYMIZE PII
	DataPolicy_DATA_POLICY_AUDIT      DataPolicy = 3 // security logs, not user-exportable, RETAIN + ANONYMIZE PII
	DataPolicy_DATA_POLICY_EPHEMERAL  DataPolicy = 4 // temporary, not exportable, DELETE on exit
	DataPolicy_DATA_POLICY_HEALTHCARE DataPolicy = 5 // PHI, field-level encryption, 6yr retention
)

func (DataPolicy) Descriptor

func (DataPolicy) Descriptor() protoreflect.EnumDescriptor

func (DataPolicy) Enum

func (x DataPolicy) Enum() *DataPolicy

func (DataPolicy) EnumDescriptor deprecated

func (DataPolicy) EnumDescriptor() ([]byte, []int)

Deprecated: Use DataPolicy.Descriptor instead.

func (DataPolicy) Number

func (x DataPolicy) Number() protoreflect.EnumNumber

func (DataPolicy) String

func (x DataPolicy) String() string

func (DataPolicy) Type

type EdgeOpts

type EdgeOpts struct {
	EdgeId int32  `protobuf:"varint,1,opt,name=edge_id,json=edgeId,proto3" json:"edge_id,omitempty"` // stable numeric ID
	Name   string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`                    // human-readable name
	// Behavior
	PropagateShare bool `protobuf:"varint,3,opt,name=propagate_share,json=propagateShare,proto3" json:"propagate_share,omitempty"` // sharing source shares target
	UniquePerFrom  bool `protobuf:"varint,4,opt,name=unique_per_from,json=uniquePerFrom,proto3" json:"unique_per_from,omitempty"`  // at most one edge per source
	// GDPR
	DataPolicy    DataPolicy        `protobuf:"varint,5,opt,name=data_policy,json=dataPolicy,proto3,enum=entdb.DataPolicy" json:"data_policy,omitempty"`
	OnSubjectExit SubjectExitPolicy `` // what happens when ref'd user exits
	/* 132-byte string literal not displayed */
	RetentionDays int32  `protobuf:"varint,7,opt,name=retention_days,json=retentionDays,proto3" json:"retention_days,omitempty"`
	LegalBasis    string `protobuf:"bytes,8,opt,name=legal_basis,json=legalBasis,proto3" json:"legal_basis,omitempty"`
	// Metadata
	Description string `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"`
	Deprecated  bool   `protobuf:"varint,10,opt,name=deprecated,proto3" json:"deprecated,omitempty"`
	// contains filtered or unexported fields
}

Edge type configuration — applied to a message representing an edge

func (*EdgeOpts) Descriptor deprecated

func (*EdgeOpts) Descriptor() ([]byte, []int)

Deprecated: Use EdgeOpts.ProtoReflect.Descriptor instead.

func (*EdgeOpts) GetDataPolicy

func (x *EdgeOpts) GetDataPolicy() DataPolicy

func (*EdgeOpts) GetDeprecated

func (x *EdgeOpts) GetDeprecated() bool

func (*EdgeOpts) GetDescription

func (x *EdgeOpts) GetDescription() string

func (*EdgeOpts) GetEdgeId

func (x *EdgeOpts) GetEdgeId() int32

func (*EdgeOpts) GetLegalBasis

func (x *EdgeOpts) GetLegalBasis() string

func (*EdgeOpts) GetName

func (x *EdgeOpts) GetName() string

func (*EdgeOpts) GetOnSubjectExit

func (x *EdgeOpts) GetOnSubjectExit() SubjectExitPolicy

func (*EdgeOpts) GetPropagateShare

func (x *EdgeOpts) GetPropagateShare() bool

func (*EdgeOpts) GetRetentionDays

func (x *EdgeOpts) GetRetentionDays() int32

func (*EdgeOpts) GetUniquePerFrom

func (x *EdgeOpts) GetUniquePerFrom() bool

func (*EdgeOpts) ProtoMessage

func (*EdgeOpts) ProtoMessage()

func (*EdgeOpts) ProtoReflect

func (x *EdgeOpts) ProtoReflect() protoreflect.Message

func (*EdgeOpts) Reset

func (x *EdgeOpts) Reset()

func (*EdgeOpts) String

func (x *EdgeOpts) String() string

type FieldOpts

type FieldOpts struct {
	Required   bool `protobuf:"varint,1,opt,name=required,proto3" json:"required,omitempty"`
	Searchable bool `protobuf:"varint,2,opt,name=searchable,proto3" json:"searchable,omitempty"`
	Indexed    bool `protobuf:"varint,3,opt,name=indexed,proto3" json:"indexed,omitempty"`
	// PII/PHI tracking
	Pii bool `protobuf:"varint,4,opt,name=pii,proto3" json:"pii,omitempty"` // personally identifiable (scrubbed on anonymize)
	Phi bool `protobuf:"varint,5,opt,name=phi,proto3" json:"phi,omitempty"` // protected health info (field-level encryption)
	// Type hints
	EnumValues string `protobuf:"bytes,6,opt,name=enum_values,json=enumValues,proto3" json:"enum_values,omitempty"` // comma-separated for string enums
	Kind       string `protobuf:"bytes,7,opt,name=kind,proto3" json:"kind,omitempty"`                               // override: "timestamp", "json", "ref", etc.
	RefTypeId  int32  `protobuf:"varint,8,opt,name=ref_type_id,json=refTypeId,proto3" json:"ref_type_id,omitempty"` // reference target type_id
	// Metadata
	DefaultValue string `protobuf:"bytes,9,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"`
	Description  string `protobuf:"bytes,10,opt,name=description,proto3" json:"description,omitempty"`
	Deprecated   bool   `protobuf:"varint,11,opt,name=deprecated,proto3" json:"deprecated,omitempty"`
	// Explicit non-PII declaration (silences lint warning)
	PiiFalse bool `protobuf:"varint,12,opt,name=pii_false,json=piiFalse,proto3" json:"pii_false,omitempty"` // explicitly declared as NOT PII
	// Unique constraint declaration (2026-04-14 SDK v0.3 decision).
	// When “true“ the server lazily creates a unique expression
	// index on “nodes(tenant_id, json_extract(payload_json,
	// '$."<field_id>"'))“ (partial index “WHERE type_id =
	// <type_id>“) the first time a node of this type is written.
	// Duplicate inserts surface as “ALREADY_EXISTS“.
	Unique bool `protobuf:"varint,13,opt,name=unique,proto3" json:"unique,omitempty"`
	// contains filtered or unexported fields
}

Field-level options — applied to individual fields

func (*FieldOpts) Descriptor deprecated

func (*FieldOpts) Descriptor() ([]byte, []int)

Deprecated: Use FieldOpts.ProtoReflect.Descriptor instead.

func (*FieldOpts) GetDefaultValue

func (x *FieldOpts) GetDefaultValue() string

func (*FieldOpts) GetDeprecated

func (x *FieldOpts) GetDeprecated() bool

func (*FieldOpts) GetDescription

func (x *FieldOpts) GetDescription() string

func (*FieldOpts) GetEnumValues

func (x *FieldOpts) GetEnumValues() string

func (*FieldOpts) GetIndexed

func (x *FieldOpts) GetIndexed() bool

func (*FieldOpts) GetKind

func (x *FieldOpts) GetKind() string

func (*FieldOpts) GetPhi

func (x *FieldOpts) GetPhi() bool

func (*FieldOpts) GetPii

func (x *FieldOpts) GetPii() bool

func (*FieldOpts) GetPiiFalse

func (x *FieldOpts) GetPiiFalse() bool

func (*FieldOpts) GetRefTypeId

func (x *FieldOpts) GetRefTypeId() int32

func (*FieldOpts) GetRequired

func (x *FieldOpts) GetRequired() bool

func (*FieldOpts) GetSearchable

func (x *FieldOpts) GetSearchable() bool

func (*FieldOpts) GetUnique

func (x *FieldOpts) GetUnique() bool

func (*FieldOpts) ProtoMessage

func (*FieldOpts) ProtoMessage()

func (*FieldOpts) ProtoReflect

func (x *FieldOpts) ProtoReflect() protoreflect.Message

func (*FieldOpts) Reset

func (x *FieldOpts) Reset()

func (*FieldOpts) String

func (x *FieldOpts) String() string

type NodeOpts

type NodeOpts struct {
	TypeId int32 `protobuf:"varint,1,opt,name=type_id,json=typeId,proto3" json:"type_id,omitempty"` // stable numeric ID (required)
	// ACL defaults
	Public        bool `protobuf:"varint,2,opt,name=public,proto3" json:"public,omitempty"`                                    // world-readable
	TenantVisible bool `protobuf:"varint,3,opt,name=tenant_visible,json=tenantVisible,proto3" json:"tenant_visible,omitempty"` // visible to all tenant members
	Inherit       bool `protobuf:"varint,4,opt,name=inherit,proto3" json:"inherit,omitempty"`                                  // inherit ACL from structural parent
	Private       bool `protobuf:"varint,5,opt,name=private,proto3" json:"private,omitempty"`                                  // owner-only (mutually exclusive with inherit)
	// GDPR
	DataPolicy    DataPolicy `protobuf:"varint,6,opt,name=data_policy,json=dataPolicy,proto3,enum=entdb.DataPolicy" json:"data_policy,omitempty"` // data classification
	SubjectField  string     `protobuf:"bytes,7,opt,name=subject_field,json=subjectField,proto3" json:"subject_field,omitempty"`                  // field that identifies who data is ABOUT
	RetentionDays int32      `protobuf:"varint,8,opt,name=retention_days,json=retentionDays,proto3" json:"retention_days,omitempty"`              // legal retention period (0 = none)
	LegalBasis    string     `protobuf:"bytes,9,opt,name=legal_basis,json=legalBasis,proto3" json:"legal_basis,omitempty"`                        // documented justification for retention
	// Metadata
	Description string `protobuf:"bytes,10,opt,name=description,proto3" json:"description,omitempty"`
	Deprecated  bool   `protobuf:"varint,11,opt,name=deprecated,proto3" json:"deprecated,omitempty"`
	// Typed capability system (2026-04-13 ACL decision)
	//
	// Name of the user-defined extension enum (e.g. "TaskExtCapability")
	// that declares per-type capabilities beyond the universal
	// “CoreCapability“ enum. Leave empty if the type only uses core
	// capabilities.
	ExtensionCapabilityEnum string `` /* 133-byte string literal not displayed */
	// Explicit op → capability mappings. Overrides the server's
	// default “GetNode → READ“ / “UpdateNode → EDIT“ table for
	// this specific type. Field-level entries (e.g. “UpdateNode“ on
	// “status“) take precedence over type-wide entries.
	CapabilityMappings []*CapabilityMapping `protobuf:"bytes,21,rep,name=capability_mappings,json=capabilityMappings,proto3" json:"capability_mappings,omitempty"`
	// Per-type implication hierarchy merged with the built-in
	// ADMIN > EDIT > COMMENT > READ closure.
	CapabilityImplications []*CapabilityImplication `` /* 128-byte string literal not displayed */
	// contains filtered or unexported fields
}

Node type configuration — applied to a message

func (*NodeOpts) Descriptor deprecated

func (*NodeOpts) Descriptor() ([]byte, []int)

Deprecated: Use NodeOpts.ProtoReflect.Descriptor instead.

func (*NodeOpts) GetCapabilityImplications

func (x *NodeOpts) GetCapabilityImplications() []*CapabilityImplication

func (*NodeOpts) GetCapabilityMappings

func (x *NodeOpts) GetCapabilityMappings() []*CapabilityMapping

func (*NodeOpts) GetDataPolicy

func (x *NodeOpts) GetDataPolicy() DataPolicy

func (*NodeOpts) GetDeprecated

func (x *NodeOpts) GetDeprecated() bool

func (*NodeOpts) GetDescription

func (x *NodeOpts) GetDescription() string

func (*NodeOpts) GetExtensionCapabilityEnum

func (x *NodeOpts) GetExtensionCapabilityEnum() string

func (*NodeOpts) GetInherit

func (x *NodeOpts) GetInherit() bool

func (*NodeOpts) GetLegalBasis

func (x *NodeOpts) GetLegalBasis() string

func (*NodeOpts) GetPrivate

func (x *NodeOpts) GetPrivate() bool

func (*NodeOpts) GetPublic

func (x *NodeOpts) GetPublic() bool

func (*NodeOpts) GetRetentionDays

func (x *NodeOpts) GetRetentionDays() int32

func (*NodeOpts) GetSubjectField

func (x *NodeOpts) GetSubjectField() string

func (*NodeOpts) GetTenantVisible

func (x *NodeOpts) GetTenantVisible() bool

func (*NodeOpts) GetTypeId

func (x *NodeOpts) GetTypeId() int32

func (*NodeOpts) ProtoMessage

func (*NodeOpts) ProtoMessage()

func (*NodeOpts) ProtoReflect

func (x *NodeOpts) ProtoReflect() protoreflect.Message

func (*NodeOpts) Reset

func (x *NodeOpts) Reset()

func (*NodeOpts) String

func (x *NodeOpts) String() string

type SubjectExitPolicy

type SubjectExitPolicy int32

What happens to edges when referenced user exits

const (
	SubjectExitPolicy_SUBJECT_EXIT_BOTH SubjectExitPolicy = 0 // act on edges in both directions
	SubjectExitPolicy_SUBJECT_EXIT_FROM SubjectExitPolicy = 1 // only when user is the source (from)
	SubjectExitPolicy_SUBJECT_EXIT_TO   SubjectExitPolicy = 2 // only when user is the target (to)
)

func (SubjectExitPolicy) Descriptor

func (SubjectExitPolicy) Enum

func (SubjectExitPolicy) EnumDescriptor deprecated

func (SubjectExitPolicy) EnumDescriptor() ([]byte, []int)

Deprecated: Use SubjectExitPolicy.Descriptor instead.

func (SubjectExitPolicy) Number

func (SubjectExitPolicy) String

func (x SubjectExitPolicy) String() string

func (SubjectExitPolicy) Type

Jump to

Keyboard shortcuts

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