Help us shape the future of Go! Take the 2026 Go Developer Survey

rela

module
v0.0.0-...-5d1de63 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2026 License: AGPL-3.0

README

Rela

A database layer on top of markdown. Define entities, link them together, and query their relationships—all stored as human-readable, version-controllable markdown files.

Rela is a schema-driven entity-graph platform. You define the shape of your domain in a YAML metamodel; rela gives you typed entities, typed relations between them, and a set of tools for querying, validating, analyzing, and presenting the resulting graph.

Common domains:

  • Architecture & design — Link requirements to decisions to components
  • Compliance & ISMS — Connect controls to evidence and audit findings
  • Risk management — Trace risks through mitigations to controls
  • Product development — Map features to user stories to tasks
  • Knowledge bases — Relate concepts, documents, and references
  • Project governance — Track goals through milestones to deliverables
  • Issue tracking — Bugs, features, and tickets with their lifecycle

Traceability is one use case, not the identity. Anything with typed entities and typed relations fits. Rela handles the rest: ID generation, bidirectional linking, orphan detection, coverage analysis, validation rules, and graph export.

Quick Start

# Initialize a project
rela init

# Create entities
rela create requirement -P title="System must support 1000 users"
rela create decision -P title="Use PostgreSQL for persistence"

# Link them together
rela link DEC-001 addresses REQ-001

# View the relationship
rela show REQ-001

# Launch the interactive TUI
rela tui

# Work with a project in a different directory
rela -p /path/to/project list
export RELA_PROJECT=/path/to/project && rela list

Features

  • Entity Management - Create, update, delete entities
  • Relationship Tracing - Link entities and trace dependencies
  • Quality Analysis - Find orphans, check coverage, detect gaps
  • Graph Export - Export to Graphviz DOT format
  • Interactive TUI - Full-featured terminal interface
  • MCP Server - Expose rela to AI assistants via Model Context Protocol
  • Markdown Storage - Human-readable, version-controllable files

Installation

go install github.com/Sourcehaven-BV/rela/cmd/rela@latest

Or build from source:

git clone https://github.com/Sourcehaven-BV/rela.git
cd rela
go build -o rela ./cmd/rela

Documentation

Document Description
Getting Started Installation, first project, core workflow
Concepts Architecture traceability fundamentals
CLI Reference Complete command reference
Metamodel Reference Configure entity types and relations
How To Publish Content with Faces and Worlds Give an entity type several content states (draft, published, translations), declare worlds that pick one face per reader, and publish through a guarded copy
Export Guide Export, import, and data integration
Best Practices Maintenance tips and team workflows
MCP Server AI assistant integration via MCP
Data Entry Web App Config-driven web UI for entity management
Lua Scripting Programmable automation with embedded Lua
Encrypting a rela repo with git-crypt Use git-crypt for confidentiality when pushing to untrusted git hosts
Scheduled Tasks Run Lua scripts on recurring schedules
Audit Log Forensic JSONL log of every entity / relation write
Outbound Mail Configure outbound email — SMTP, branding, and what best-effort delivery means
PostgreSQL Backend Run rela-server and the CLI against PostgreSQL instead of markdown files
Attachment Security: Scanning, MIME Allowlist & Transforms Virus scanning, a sniffed MIME allowlist, and byte transforms for uploaded attachments
SQLite Backend Run rela against an embedded SQLite database — one file, no server, single process
Security model for rela-server Threat model, HTTP defenses, audit attribution, and residual risks for the rela-server data-entry app; how its read-side ACL coverage stands today.
ACL: Authorization Overview How rela's role-based authorization works end-to-end: from acl.yaml + the graph to a write decision and its audit attribution
ACL: Security Hardening Operator's hardening guide for rela's ACL system: group membership trust, fail-loud boot, audit-isolation invariants
Generated documentation: the rela docs language Author a deployment manual in Markdown with embedded Lua islands that pull reference fragments (field tables, enum meanings, mermaid lifecycles, relation graphs, role matrices) straight from the schema.
CalDAV: syncing to-dos with Apple Reminders and other clients Sync to-do collections two-way with Apple Reminders and other CalDAV clients
CalDAV to-do (VTODO) client compatibility Which task apps speak VTODO, and what each does with formatted descriptions
Data Classification Label what data each field holds in classification.yaml, lint and sync it, and see what each role can read of it
Data Migration Detect schema shape changes and migrate stored content with generated, reviewable migrations
Comments: Annotating Entities, Fields and Text Enable commenting, control who may comment, and understand how anchors survive edits
Rela Desktop: Documents, Menus and Notifications Open projects and single-file .rela documents in the desktop app, and send notifications with desktop.yaml
Driving rela-server from the command line with restish Call a remote rela-server from the command line, including file uploads, through its OpenAPI spec
Realtime Channels (realtime.yaml) Declare channel types, message types, roles, lifecycle, sessions and triggers in realtime.yaml, and how rela checks the file
Tutorials
Tutorial Description
Tutorial: Building an ISO 27001 ISMS with Rela Build a complete Information Security Management System
Tutorial: Hybrid Project Management with Rela Build a hybrid project management system
Scenarios
Scenario Description
Scenario: DevOps/SRE Runbooks & Infrastructure Operations DevOps/SRE runbooks and infrastructure operations
Scenario: ISO 27001 Information Security Management System ISO 27001 Information Security Management System
Scenario: Hybrid Project Management Hybrid project management documentation
Examples
Example Description
Ticket tracker — operator handbook A generated operator handbook for the demo ticket tracker, built by rela-docs — field tables, a mermaid lifecycle, a role matrix, and an annotated screenshot, all derived from the project's schema so they can't drift.

Project Structure

After running rela init:

your-project/
├── schema.yaml          # Entity types and relations config
├── entities/            # Markdown entity files (by type)
│   ├── requirements/
│   ├── decisions/
│   └── ...
├── relations/           # Markdown relation files
├── templates/           # Optional: templates for new entities/relations
│   ├── entities/        # One template per entity type
│   └── relations/       # One template per relation type
└── .rela/               # Cache (gitignored)

Core Traceability Chain

Requirement ──addresses──> Decision ──implements──> Solution ──realizes──> Component

Use rela analyze coverage to check for gaps in this chain.

License

AGPL-3.0 - See LICENSE for details.

Directories

Path Synopsis
cmd
gen-icons command
Command gen-icons generates every artifact derived from the canonical icon table in internal/dataentryconfig/icondefs.
Command gen-icons generates every artifact derived from the canonical icon table in internal/dataentryconfig/icondefs.
rela command
rela-desktop command
rela-desktop runs the data entry application as a native desktop app using Wails.
rela-desktop runs the data entry application as a native desktop app using Wails.
rela-docs command
rela-docs renders a Markdown manual with embedded rela Lua islands (field tables, enum meanings, lifecycle/relation diagrams, role matrices, and live screenshot{} captures) to resolved Markdown.
rela-docs renders a Markdown manual with embedded rela Lua islands (field tables, enum meanings, lifecycle/relation diagrams, role matrices, and live screenshot{} captures) to resolved Markdown.
rela-server command
rela-server runs the data entry web application as a standalone HTTP server.
rela-server runs the data entry web application as a standalone HTTP server.
internal
access
Package access is the access service of the data-entry API: it decides what one HTTP request may read and write.
Package access is the access service of the data-entry API: it decides what one HTTP request may read and write.
acl
Package acl provides principal-aware authorization for entity and relation writes.
Package acl provides principal-aware authorization for entity and relation writes.
acl/acltest
Package acltest holds test helpers for code that evaluates through an acl.Declarative.
Package acltest holds test helpers for code that evaluates through an acl.Declarative.
aclaudit
Package aclaudit is an on-demand linter for an acl.Policy loaded from `acl.yaml`.
Package aclaudit is an on-demand linter for an acl.Policy loaded from `acl.yaml`.
aclmap
Package aclmap materializes slices of the effective-access relation — who can perform a verb on an entity, and by which route — from the declarative ACL policy plus the graph.
Package aclmap materializes slices of the effective-access relation — who can perform a verb on an entity, and by which route — from the declarative ACL policy plus the graph.
aclstore
Package aclstore adapts a store to the read contracts the ACL resolver declares: acl.Graph for membership and ancestor walks, and acl.PrincipalLookup for resolving a raw principal to a user entity.
Package aclstore adapts a store to the read contracts the ACL resolver declares: acl.Graph for membership and ancestor walks, and acl.PrincipalLookup for resolving a raw principal to a user entity.
affordances
Package affordances builds a policy-driven field/option/relation affordance resolver from an acl.yaml acl.Policy.
Package affordances builds a policy-driven field/option/relation affordance resolver from an acl.yaml acl.Policy.
ai
Package ai provides LLM access for rela via OpenAI-compatible providers.
Package ai provides LLM access for rela via OpenAI-compatible providers.
analysis
Package analysis exposes the read-only analysis facades the CLI uses to surface graph health: orphans, duplicates, gaps, cardinality violations, custom Lua validations, and orphan temp files left by interrupted writes.
Package analysis exposes the read-only analysis facades the CLI uses to surface graph health: orphans, duplicates, gaps, cardinality violations, custom Lua validations, and orphan temp files left by interrupted writes.
apiwire/v1
Package v1 holds the v1 data-entry API wire vocabulary: the JSON-shaped request/response types the server serializes to and that an in-process native bridge can consume directly.
Package v1 holds the v1 data-entry API wire vocabulary: the JSON-shaped request/response types the server serializes to and that an in-process native bridge can consume directly.
app
Package app provides factories that construct the concrete services needed by each rela entry point (cli, data-entry server, desktop, MCP).
Package app provides factories that construct the concrete services needed by each rela entry point (cli, data-entry server, desktop, MCP).
appbuild
Package appbuild assembles the focused services every project entry point (rela-server, rela-desktop, future bindings) needs from a project directory.
Package appbuild assembles the focused services every project entry point (rela-server, rela-desktop, future bindings) needs from a project directory.
appbuild/appbuildtest
Package appbuildtest provides a test fixture for assembling an appbuild.Services bundle.
Package appbuildtest provides a test fixture for assembling an appbuild.Services bundle.
appbuild/backendtest
Package backendtest supplies the backend a build-agnostic wiring test needs.
Package backendtest supplies the backend a build-agnostic wiring test needs.
attachment
Package attachment exposes the CLI-shaped facade for managing entity file attachments (attach, list).
Package attachment exposes the CLI-shaped facade for managing entity file attachments (attach, list).
audit
Package audit records every entity and relation write performed by the project as an append-only JSONL stream.
Package audit records every entity and relation write performed by the project as an append-only JSONL stream.
autocascade
Package autocascade executes the side effects of automation results produced by automation.Engine.
Package autocascade executes the side effects of automation results produced by automation.Engine.
automation
Package automation provides a trigger-action engine for entity lifecycle events.
Package automation provides a trigger-action engine for entity lifecycle events.
cache
Package cache provides small generic cache data structures.
Package cache provides small generic cache data structures.
caldavalias
Package caldavalias maps CalDAV resources to rela entities.
Package caldavalias maps CalDAV resources to rela entities.
calfeed
Package calfeed models calendar feeds and serializes them to calendar interchange formats (iCalendar and JSON) as a service separate from the store.
Package calfeed models calendar feeds and serializes them to calendar interchange formats (iCalendar and JSON) as a service separate from the store.
canonical
Package canonical produces a deterministic, backend-independent content hash for an entity.Entity or entity.Relation.
Package canonical produces a deterministic, backend-independent content hash for an entity.Entity or entity.Relation.
changefeed
Package changefeed numbers store change events and answers one question for a live-update stream: which entity types changed since a given position.
Package changefeed numbers store change events and answers one question for a live-update stream: which entity types changed since a given position.
channels
Package channels holds the realtime channels attached to entities: ordered logs of typed messages that live beside the graph rather than in it.
Package channels holds the realtime channels attached to entities: ordered logs of typed messages that live beside the graph rather than in it.
channels/channelstest
Package channelstest is the conformance suite every channels.Store backend must pass.
Package channelstest is the conformance suite every channels.Store backend must pass.
channels/filechannels
Package filechannels is the channels.Store backend for the fs, memory and desktop tiers: one directory per channel under the project's .rela/ directory.
Package filechannels is the channels.Store backend for the fs, memory and desktop tiers: one directory per channel under the project's .rela/ directory.
channels/pgchannels
Package pgchannels is the PostgreSQL [channels.Store]: the sqlchannels implementation over the pgx pool the composition root shares with pgstore, as pgcomments does.
Package pgchannels is the PostgreSQL [channels.Store]: the sqlchannels implementation over the pgx pool the composition root shares with pgstore, as pgcomments does.
channels/sqlchannels
Package sqlchannels is the one implementation of channels.Store over a SQL database.
Package sqlchannels is the one implementation of channels.Store over a SQL database.
channels/sqlitechannels
Package sqlitechannels is the SQLite [channels.Store]: the sqlchannels implementation over the *sql.DB that sqlitedb owns.
Package sqlitechannels is the SQLite [channels.Store]: the sqlchannels implementation over the *sql.DB that sqlitedb owns.
classification
Package classification reads and analyses a project's optional classification.yaml: operator-defined labels that describe what kind of data each entity and relation field holds (TKT-8UCV32, RES-TZH38L).
Package classification reads and analyses a project's optional classification.yaml: operator-defined labels that describe what kind of data each entity and relation field holds (TKT-8UCV32, RES-TZH38L).
cli
Package cli wires the kong-based CLI.
Package cli wires the kong-based CLI.
cmdexec
Package cmdexec runs external commands safely for the "bytes in → bytes out" pattern shared by attachment processing and view export.
Package cmdexec runs external commands safely for the "bytes in → bytes out" pattern shared by attachment processing and view export.
comments
Package comments holds user commentary attached to entities: a remark about a property or a view section, stored alongside the graph rather than in it.
Package comments holds user commentary attached to entities: a remark about a property or a view section, stored alongside the graph rather than in it.
comments/commentstest
Package commentstest is the conformance suite every comments.Store implementation must pass.
Package commentstest is the conformance suite every comments.Store implementation must pass.
comments/filecomments
Package filecomments stores comments as YAML, one file per target entity, under a directory the caller roots (conventionally `.rela/comments/`).
Package filecomments stores comments as YAML, one file per target entity, under a directory the caller roots (conventionally `.rela/comments/`).
comments/memcomments
Package memcomments is an in-memory comments.Store for tests and the memory build.
Package memcomments is an in-memory comments.Store for tests and the memory build.
comments/pgcomments
Package pgcomments is the PostgreSQL-backed comments.Store.
Package pgcomments is the PostgreSQL-backed comments.Store.
comments/sqlitecomments
Package sqlitecomments is the SQLite-backed comments.Store.
Package sqlitecomments is the SQLite-backed comments.Store.
computed
Package computed compiles and evaluates materialized entity-local computed properties.
Package computed compiles and evaluates materialized entity-local computed properties.
conditionlint
Package conditionlint performs author-time validation of the condition expressions used by wizard forms (`visible_when` / `required_when`).
Package conditionlint performs author-time validation of the condition expressions used by wizard forms (`visible_when` / `required_when`).
config
Package config provides read-only access to project-root configuration files — the YAML/JSON files users check into their repo alongside schema.yaml (data-entry.yaml, schedules.yaml, and so on).
Package config provides read-only access to project-root configuration files — the YAML/JSON files users check into their repo alongside schema.yaml (data-entry.yaml, schedules.yaml, and so on).
config/configsql
Package configsql serves a project's operator-authored config — schema.yaml, data-entry.yaml, acl.yaml, scripts/, templates/, custom/ — from a SQL table rather than from files on disk.
Package configsql serves a project's operator-authored config — schema.yaml, data-entry.yaml, acl.yaml, scripts/, templates/, custom/ — from a SQL table rather than from files on disk.
configedit
Package configedit edits a project's configuration files (schema.yaml and data-entry.yaml) on behalf of the in-app Configure space (TKT-F5NGMG).
Package configedit edits a project's configuration files (schema.yaml and data-entry.yaml) on behalf of the in-app Configure space (TKT-F5NGMG).
conflict
Package conflict provides detection and resolution of git merge conflicts in entity and relation markdown files.
Package conflict provides detection and resolution of git merge conflicts in entity and relation markdown files.
dataentry
Package dataentry provides a config-driven data entry web application built on top of rela's metamodel system.
Package dataentry provides a config-driven data entry web application built on top of rela's metamodel system.
dataentryconfig
Package dataentryconfig contains the configuration types and validation logic for the data-entry web application.
Package dataentryconfig contains the configuration types and validation logic for the data-entry web application.
dataentryconfig/icondefs
Package icondefs holds the canonical definition of the data-entry icon set: the one place a config-facing icon name, its Lucide component, its category and its description are written down.
Package icondefs holds the canonical definition of the data-entry icon set: the one place a config-facing icon name, its Lucide component, its category and its description are written down.
dataentrywire
Package dataentrywire connects a data-entry app to the services it was built from: the parts every surface serving the SPA needs, whatever else it adds.
Package dataentrywire connects a data-entry app to the services it was built from: the parts every surface serving the SPA needs, whatever else it adds.
datamigration
Package datamigration migrates STORED CONTENT when the schema's data shape changes (TKT-0C57FS).
Package datamigration migrates STORED CONTENT when the schema's data shape changes (TKT-0C57FS).
datamigration/filemigstate
Package filemigstate stores migration state as JSON at `migrations/applied.json` inside the project directory.
Package filemigstate stores migration state as JSON at `migrations/applied.json` inside the project directory.
datamigration/memmigstate
Package memmigstate keeps migration state in memory.
Package memmigstate keeps migration state in memory.
datamigration/migstatetest
Package migstatetest is the conformance harness every datamigration.StateStore implementation must pass.
Package migstatetest is the conformance harness every datamigration.StateStore implementation must pass.
datamigration/pgmigstate
Package pgmigstate stores the data-migration record in the tenant's PostgreSQL schema.
Package pgmigstate stores the data-migration record in the tenant's PostgreSQL schema.
datamigration/sqlitemigstate
Package sqlitemigstate stores the data-migration record in the SQLite database rather than in a file beside it.
Package sqlitemigstate stores the data-migration record in the SQLite database rather than in a file beside it.
desktop
Package desktop provides desktop-specific functionality for the Wails desktop app, including user preferences persistence.
Package desktop provides desktop-specific functionality for the Wails desktop app, including user preferences persistence.
desktopnotify
Package desktopnotify decides which native desktop notifications the rela desktop app shows, and what number its Dock badge carries.
Package desktopnotify decides which native desktop notifications the rela desktop app shows, and what number its Dock badge carries.
docs
Package docs implements the rela-docs "doc language": a Markdown file with embedded Lua "islands" that pull reference fragments from the schema and a seeded in-memory graph.
Package docs implements the rela-docs "doc language": a Markdown file with embedded Lua "islands" that pull reference fragments from the schema and a seeded in-memory graph.
docscapture
Package docscapture implements the browser-backed screenshot capture for the rela-docs screenshot{} island (Tier B).
Package docscapture implements the browser-backed screenshot capture for the rela-docs screenshot{} island (Tier B).
docscli
Package docscli is the command layer for the standalone `rela-docs` binary: it resolves a Markdown manual's rela Lua islands (field tables, lifecycles, relation graphs, role matrices, and live `screenshot{}` captures) against a project's metamodel + acl.yaml.
Package docscli is the command layer for the standalone `rela-docs` binary: it resolves a Markdown manual's rela Lua islands (field tables, lifecycles, relation graphs, role matrices, and live `screenshot{}` captures) against a project's metamodel + acl.yaml.
entity
Package entity defines the domain types for rela entities and relations.
Package entity defines the domain types for rela entities and relations.
entitymanager
Package entitymanager defines the entity-manager service — the "human intent" write path that runs automations, validation, and policy concerns (ACL, audit logging).
Package entitymanager defines the entity-manager service — the "human intent" write path that runs automations, validation, and policy concerns (ACL, audit logging).
entitymanager/entitymanagertest
Package entitymanagertest provides test doubles for the entity-manager write path.
Package entitymanagertest provides test doubles for the entity-manager write path.
feed
Package feed parses syndication feeds (RSS 2.0 and 0.9x, RSS 1.0, Atom 1.0 and JSON Feed 1.x) into one normalized shape.
Package feed parses syndication feeds (RSS 2.0 and 0.9x, RSS 1.0, Atom 1.0 and JSON Feed 1.x) into one normalized shape.
filelock
Package filelock is a cross-process lock on a lock file: an exclusive advisory lock (flock on unix, LockFileEx on windows) that every process opening the same file agrees on.
Package filelock is a cross-process lock on a lock file: an exclusive advisory lock (flock on unix, LockFileEx on windows) that every process opening the same file agrees on.
frontmatter
Package frontmatter splits a YAML-frontmatter markdown document into its raw frontmatter block and body.
Package frontmatter splits a YAML-frontmatter markdown document into its raw frontmatter block and body.
fsimport
Package fsimport copies a filesystem project into a new project directory whose data lives in a database backend.
Package fsimport copies a filesystem project into a new project directory whose data lives in a database backend.
git
Package git provides git operations for the data entry app.
Package git provides git operations for the data entry app.
hostconfig
Package hostconfig supplies what a project reads from the machine it runs on rather than from its config: its secrets, and the AI and mail settings (ai.yaml, mail.yaml).
Package hostconfig supplies what a project reads from the machine it runs on rather than from its config: its secrets, and the AI and mail settings (ai.yaml, mail.yaml).
htmlmd
Package htmlmd converts between rich-text HTML and markdown, for sync connectors whose remote system stores HTML (TKT-LAMZ8F).
Package htmlmd converts between rich-text HTML and markdown, for sync connectors whose remote system stores HTML (TKT-LAMZ8F).
htmlutil
Package htmlutil provides HTML post-processing utilities.
Package htmlutil provides HTML post-processing utilities.
imgproc
Package imgproc normalizes raster image bytes in-process, with no external tool and no OS sandbox.
Package imgproc normalizes raster image bytes in-process, with no external tool and no OS sandbox.
importer
Package importer provides functionality to import entities and relations from JSON, YAML, and CSV files into rela projects.
Package importer provides functionality to import entities and relations from JSON, YAML, and CSV files into rela projects.
ingest
Package ingest runs an ingestspec.Mapping against one inbound record: find the entity it concerns, create it when missing, then apply the steps.
Package ingest runs an ingestspec.Mapping against one inbound record: find the entity it concerns, create it when missing, then apply the steps.
ingestspec
Package ingestspec declares the find / create / then mapping that turns an inbound record into entity writes.
Package ingestspec declares the find / create / then mapping that turns an inbound record into entity writes.
jobs
Package jobs is the background-job seam: one narrow interface every subsystem enqueues through, with durability tiered to the deployment model.
Package jobs is the background-job seam: one narrow interface every subsystem enqueues through, with durability tiered to the deployment model.
jobs/jobstest
Package jobstest is the conformance harness for jobs.Queue implementations, in the same spirit as store/storetest and state/statetest.
Package jobstest is the conformance harness for jobs.Queue implementations, in the same spirit as store/storetest and state/statetest.
jwtauth
Package jwtauth verifies signed identity assertions (ES256 JWTs) from an upstream OIDC identity proxy against its published JWKS.
Package jwtauth verifies signed identity assertions (ES256 JWTs) from an upstream OIDC identity proxy against its published JWKS.
lease
Package lease holds advisory entity leases: a short, renewable claim that says "this holder is working on this entity until this time".
Package lease holds advisory entity leases: a short, renewable claim that says "this holder is working on this entity until this time".
lease/kvlease
Package kvlease is the lease.Store backend for the single-process tiers (fs, memory, sqlite, desktop), keeping every lease in one document in a state.KV.
Package kvlease is the lease.Store backend for the single-process tiers (fs, memory, sqlite, desktop), keeping every lease in one document in a state.KV.
lease/leasetest
Package leasetest is the conformance harness every lease.Store implementation must pass.
Package leasetest is the conformance harness every lease.Store implementation must pass.
lease/pglease
Package pglease is the PostgreSQL-backed lease.Store.
Package pglease is the PostgreSQL-backed lease.Store.
lock
Package lock is the named-mutual-exclusion seam: callers ask for a lock on a string key, do work, release.
Package lock is the named-mutual-exclusion seam: callers ask for a lock on a string key, do work, release.
lock/locktest
Package locktest is the conformance harness for lock.Locker implementations.
Package locktest is the conformance harness for lock.Locker implementations.
lua
Lua bindings for the ai.* module (ai.chat, ai.complete, ai.embed).
Lua bindings for the ai.* module (ai.chat, ai.complete, ai.embed).
mail
Package mail sends outbound email.
Package mail sends outbound email.
mail/mailtest
Package mailtest provides a conformance suite for mail.Sender implementations, in the shape internal/store/storetest establishes: each implementation wires the suite through a Factory returning a fresh sender.
Package mailtest provides a conformance suite for mail.Sender implementations, in the shape internal/store/storetest establishes: each implementation wires the suite through a Factory returning a fresh sender.
mailrender
Package mailrender turns a message model into the two body parts an email carries: sanitized, CSS-inlined HTML and a plain-text alternative.
Package mailrender turns a message model into the two body parts an email carries: sanitized, CSS-inlined HTML and a plain-text alternative.
mailtemplate
Package mailtemplate builds recipient-scoped mail models from project declarations.
Package mailtemplate builds recipient-scoped mail models from project declarations.
mcp
coverage-ignore: MCP prompt handlers - tested via integration tests
coverage-ignore: MCP prompt handlers - tested via integration tests
mcpwire
Package mcpwire wires MCP tool groups to services from appbuild.
Package mcpwire wires MCP tool groups to services from appbuild.
mentions
Package mentions extracts entity-id mentions from markdown bodies.
Package mentions extracts entity-id mentions from markdown bodies.
mermaid
Package mermaid renders mermaid diagram source from neutral, primitive inputs.
Package mermaid renders mermaid diagram source from neutral, primitive inputs.
migration
Package migration provides schema migration support for rela project files.
Package migration provides schema migration support for rela project files.
natsort
Package natsort provides natural sorting for strings containing numbers.
Package natsort provides natural sorting for strings containing numbers.
nextaction
Package nextaction resolves ONE advisory suggestion from operator-declared sources.
Package nextaction resolves ONE advisory suggestion from operator-declared sources.
openapi
Package openapi provides OpenAPI 3.1 spec generation from rela metamodels.
Package openapi provides OpenAPI 3.1 spec generation from rela metamodels.
pattern
Package pattern provides glob pattern parsing, validation, and regex conversion.
Package pattern provides glob pattern parsing, validation, and regex conversion.
perfseed
Package perfseed generates a deterministic, realistically shaped entity graph for the perf demo project (prototypes/perf/project) and loads it into any store.Store.
Package perfseed generates a deterministic, realistically shaped entity graph for the perf demo project (prototypes/perf/project) and loads it into any store.Store.
piles
Package piles holds per-user piles: named, personal stacks of entity references that a user fills from lists, search, scripts and automations, and then steps through, acts on or exports.
Package piles holds per-user piles: named, personal stacks of entity references that a user fills from lists, search, scripts and automations, and then steps through, acts on or exports.
piles/kvpiles
Package kvpiles is the piles.Store backend for the single-process tiers (fs, memory, sqlite, desktop), persisting every owner's piles through a state.KV.
Package kvpiles is the piles.Store backend for the single-process tiers (fs, memory, sqlite, desktop), persisting every owner's piles through a state.KV.
piles/pgpiles
Package pgpiles is the PostgreSQL-backed piles.Store.
Package pgpiles is the PostgreSQL-backed piles.Store.
piles/pilestest
Package pilestest is the conformance harness every piles.Store implementation must pass.
Package pilestest is the conformance harness every piles.Store implementation must pass.
predicate
Package predicate is a small, sandboxed typed expression-evaluation engine over named values and host-registered functions.
Package predicate is a small, sandboxed typed expression-evaluation engine over named values and host-registered functions.
predicatefns
Package predicatefns is the shared host-function standard library for the predicate engine.
Package predicatefns is the shared host-function standard library for the predicate engine.
presence
Package presence tracks who has an entity open (TKT-MHXH87).
Package presence tracks who has an entity open (TKT-MHXH87).
principal
Package principal carries the identity attribution attached to each request: who initiated it (User) and through what entry point (Tool).
Package principal carries the identity attribution attached to each request: who initiated it (User) and through what entry point (Tool).
propmatch
Package propmatch is the single authoritative definition of what "empty" means for an entity property, plus the untyped string comparisons that can be decided without consulting the metamodel.
Package propmatch is the single authoritative definition of what "empty" means for an entity property, plus the untyped string comparisons that can be decided without consulting the metamodel.
queryplan
Package queryplan compiles the safe store-side subset of data-entry search queries.
Package queryplan compiles the safe store-side subset of data-entry search queries.
realtime
Package realtime is the channel service: it authorizes, validates, rate limits and renders channel operations over a channels.Store, and holds the ephemeral signals that are never stored.
Package realtime is the channel service: it authorizes, validates, rate limits and renders channel operations over a channels.Store, and holds the ephemeral signals that are never stored.
realtimecfg
Package realtimecfg loads realtime.yaml: the channel types, message types, lifecycle and triggers of rela's realtime channels.
Package realtimecfg loads realtime.yaml: the channel types, message types, lifecycle and triggers of rela's realtime channels.
realtimelimits
Package realtimelimits holds the built-in caps for realtime channels and signals.
Package realtimelimits holds the built-in caps for realtime channels and signals.
relresolve
Package relresolve answers the `related(...)` traversals of compiled predicate programs against a store, in batches (TKT-205V2N).
Package relresolve answers the `related(...)` traversals of compiled predicate programs against a store, in batches (TKT-205V2N).
renametype
Package renametype handles the entity-type rename operation (metamodel + directory + per-file YAML frontmatter + template).
Package renametype handles the entity-type rename operation (metamodel + directory + per-file YAML frontmatter + template).
rootfs
Package rootfs reads operator-authored project files — scripts/, actions/, validations/, custom/, apps/ — from a directory on disk, contained with os.Root.
Package rootfs reads operator-authored project files — scripts/, actions/, validations/, custom/, apps/ — from a directory on disk, contained with os.Root.
safexml
Package safexml decodes untrusted XML into a plain element tree under hard resource limits.
Package safexml decodes untrusted XML into a plain element tree under hard resource limits.
scheduler
Package scheduler runs Lua scripts on simple recurring schedules.
Package scheduler runs Lua scripts on simple recurring schedules.
schedulerstate
Package schedulerstate holds scheduling bookkeeping for github.com/Sourcehaven-BV/rela/internal/scheduler: per task, when it last ran successfully, how many times it has failed since, and when it may be tried again; per run, where that run is in its lifecycle.
Package schedulerstate holds scheduling bookkeeping for github.com/Sourcehaven-BV/rela/internal/scheduler: per task, when it last ran successfully, how many times it has failed since, and when it may be tried again; per run, where that run is in its lifecycle.
schedulerstate/kvstate
Package kvstate is the schedulerstate.Store backend for the filesystem and desktop tiers, persisting through a state.KV.
Package kvstate is the schedulerstate.Store backend for the filesystem and desktop tiers, persisting through a state.KV.
schedulerstate/pgschedstate
Package pgschedstate is the PostgreSQL-backed schedulerstate.Store.
Package pgschedstate is the PostgreSQL-backed schedulerstate.Store.
schedulerstate/schedulerstatetest
Package schedulerstatetest is the shared contract every schedulerstate.Store implementation must satisfy.
Package schedulerstatetest is the shared contract every schedulerstate.Store implementation must satisfy.
schema
Package schema provides analysis and cleanup utilities for metamodel schemas.
Package schema provides analysis and cleanup utilities for metamodel schemas.
scopes
Package scopes compiles the metamodel's `query_scopes:` declarations into evaluable predicate programs — the named, reusable membership rules a data-entry list or kanban selects by name (TKT-EVR2TU).
Package scopes compiles the metamodel's `query_scopes:` declarations into evaluable predicate programs — the named, reusable membership rules a data-entry list or kanban selects by name (TKT-EVR2TU).
script
Package script orchestrates script execution for automations and user- initiated script runs.
Package script orchestrates script execution for automations and user- initiated script runs.
search
Package search provides full-text search over a store.Store, satisfied by a Backend (today: [bleveindex.Index]).
Package search provides full-text search over a store.Store, satisfied by a Backend (today: [bleveindex.Index]).
search/bleveindex
Package bleveindex provides a bleve-backed implementation of search.Backend for full-text entity search.
Package bleveindex provides a bleve-backed implementation of search.Backend for full-text entity search.
secrets
Package secrets loads per-script secret values from .rela/secrets.yaml.
Package secrets loads per-script secret values from .rela/secrets.yaml.
sqlitedb
Package sqlitedb owns the SQLite database FILE: opening it, verifying its PRAGMAs, holding the single-writer lock, and carrying its schema forward.
Package sqlitedb owns the SQLite database FILE: opening it, verifying its PRAGMAs, holding the single-writer lock, and carrying its schema forward.
state
Package state provides a per-user key/value store for state that persists between runs but isn't part of the project's tracked source — UI state, render caches, scheduler bookkeeping.
Package state provides a per-user key/value store for state that persists between runs but isn't part of the project's tracked source — UI state, render caches, scheduler bookkeeping.
state/statesql
Package statesql stores rela's runtime state — the document render cache, user settings, the operator's logo and theme, the CalDAV alias table — in a SQL table rather than in files under .rela/.
Package statesql stores rela's runtime state — the document render cache, user settings, the operator's logo and theme, the CalDAV alias table — in a SQL table rather than in files under .rela/.
state/statetest
Package statetest is the conformance harness for state.KV implementations.
Package statetest is the conformance harness for state.KV implementations.
statemachine
Package statemachine compiles the declarative enum state machines in a metamodel (CustomType.Transitions, see TKT-E4LW2) into an executable form and enforces them on the entity write path.
Package statemachine compiles the declarative enum state machines in a metamodel (CustomType.Transitions, see TKT-E4LW2) into an executable form and enforces them on the entity write path.
storage
Package storage provides filesystem abstraction for rela's file I/O operations.
Package storage provides filesystem abstraction for rela's file I/O operations.
store
Package store provides the storage abstraction for rela workspaces.
Package store provides the storage abstraction for rela workspaces.
store/bgloop
Package bgloop runs one function on a background goroutine with a start-once, stop-and-wait lifecycle.
Package bgloop runs one function on a background goroutine with a start-once, stop-and-wait lifecycle.
store/fsstore
Package fsstore provides a filesystem-backed implementation of store.Store.
Package fsstore provides a filesystem-backed implementation of store.Store.
store/graphquerynaive
Package graphquerynaive ships the unoptimised, backend-agnostic implementation of store.GraphQueryer.
Package graphquerynaive ships the unoptimised, backend-agnostic implementation of store.GraphQueryer.
store/memstore
Package memstore provides an in-memory implementation of store.Store.
Package memstore provides an in-memory implementation of store.Store.
store/pgstore
Package pgstore provides a PostgreSQL implementation of store.Store.
Package pgstore provides a PostgreSQL implementation of store.Store.
store/sqlitestore
Package sqlitestore implements store.Store on an embedded SQLite database.
Package sqlitestore implements store.Store on an embedded SQLite database.
store/storetest
Package storetest provides a conformance test suite for store.Store implementations.
Package storetest provides a conformance test suite for store.Store implementations.
store/storeutil
Package storeutil provides shared helpers for store.Store implementations.
Package storeutil provides shared helpers for store.Store implementations.
subscription
Package subscription imports syndication feeds (RSS, Atom, JSON Feed) into entities.
Package subscription imports syndication feeds (RSS, Atom, JSON Feed) into entities.
syncmerge
Package syncmerge is the pure three-way merge behind Lua rela.sync.merge (TKT-SM20FG).
Package syncmerge is the pure three-way merge behind Lua rela.sync.merge (TKT-SM20FG).
templating
Package templating: fsloader.go contains the filesystem primitives used by FSTemplater to read, discover, and generate entity/relation template files.
Package templating: fsloader.go contains the filesystem primitives used by FSTemplater to read, discover, and generate entity/relation template files.
tenant
Package tenant resolves a verified organization to the storage it — and only it — may reach.
Package tenant resolves a verified organization to the storage it — and only it — may reach.
testutil/logtest
Package logtest swaps the process-wide default logger in tests and puts all of it back afterwards.
Package logtest swaps the process-wide default logger in tests and puts all of it back afterwards.
tokenstore
Package tokenstore keeps OAuth refresh tokens for connector scripts and hands those scripts short-lived access tokens (TKT-01KZSO).
Package tokenstore keeps OAuth refresh tokens for connector scripts and hands those scripts short-lived access tokens (TKT-01KZSO).
tokenstore/tokenstoretest
Package tokenstoretest is the conformance harness for tokenstore.Store implementations (TKT-01KZSO).
Package tokenstoretest is the conformance harness for tokenstore.Store implementations (TKT-01KZSO).
tracer
Package tracer provides graph traversal operations (trace, path, orphan detection, cycle detection, clustering) as a service separate from the store.
Package tracer provides graph traversal operations (trace, path, orphan detection, cycle detection, clustering) as a service separate from the store.
tracer/tracertest
Package tracertest holds test helpers for building a tracer.GenericTracer.
Package tracertest holds test helpers for building a tracer.GenericTracer.
transform
Package transform is the view-export engine: it converts markdown produced by a Renderer into an output format (PDF, DOCX, ...) by running a named, project-configured external command.
Package transform is the view-export engine: it converts markdown produced by a Renderer into an output format (PDF, DOCX, ...) by running a named, project-configured external command.
userstate
Package userstate holds per-user, per-suggestion state for the next-action layer: snoozes, muted sources, and last-shown timestamps.
Package userstate holds per-user, per-suggestion state for the next-action layer: snoozes, muted sources, and last-shown timestamps.
userstate/kvuserstate
Package kvuserstate is the durable userstate.Store backend, persisting next-action state through a state.KV.
Package kvuserstate is the durable userstate.Store backend, persisting next-action state through a state.KV.
userstate/memuserstate
Package memuserstate is the in-memory userstate.Store backend.
Package memuserstate is the in-memory userstate.Store backend.
userstate/userstatetest
Package userstatetest is the conformance harness every userstate.Store implementation must pass.
Package userstatetest is the conformance harness every userstate.Store implementation must pass.
validation
Package validation provides custom validation rule checking for entities.
Package validation provides custom validation rule checking for entities.
validationgraph
Package validationgraph adapts a store-backed reader to the graph surface the validation engine's relation-cardinality gates need.
Package validationgraph adapts a store-backed reader to the graph surface the validation engine's relation-cardinality gates need.
validator
Package validator provides a Validator service that runs metamodel validation rules over a store.
Package validator provides a Validator service that runs metamodel validation rules over a store.
visibility
Package visibility is the read-side ACL enforcement seam: wrappers that row-gate and field-redact entity reads ABOVE the (deliberately ungated) base services, per DEC-ZBI39P.
Package visibility is the read-side ACL enforcement seam: wrappers that row-gate and field-redact entity reads ABOVE the (deliberately ungated) base services, per DEC-ZBI39P.
visibility/visibilitytest
Package visibilitytest is the conformance suite for the internal/visibility contracts (the analog of storetest's RunVisibleSearchTests): any visibility.Reader implementation and any visibility-decorated tracer.Tracer must pass it.
Package visibilitytest is the conformance suite for the internal/visibility contracts (the analog of storetest's RunVisibleSearchTests): any visibility.Reader implementation and any visibility-decorated tracer.Tracer must pass it.
worldreader
Package worldreader is the RUNTIME half of content-state worlds (TKT-WAV8XP Step 2): it resolves an entity to the single state a world selects — its "prime" — and hands out capabilities that carry that resolution so callers cannot accidentally read around it.
Package worldreader is the RUNTIME half of content-state worlds (TKT-WAV8XP Step 2): it resolves an entity to the single state a world selects — its "prime" — and hands out capabilities that carry that resolution so callers cannot accidentally read around it.
worlds
Package worlds compiles the metamodel's `worlds:` declarations into store.WorldScope values — the metamodel-free, per-type ranked resolution the storage layer evaluates (TKT-WAV8XP, design doc §4).
Package worlds compiles the metamodel's `worlds:` declarations into store.WorldScope values — the metamodel-free, per-type ranked resolution the storage layer evaluates (TKT-WAV8XP, design doc §4).
tools
agentrules
Package agentrules holds the guard test for the path-scoped agent rules in .claude/rules.
Package agentrules holds the guard test for the path-scoped agent rules in .claude/rules.
seqtrace
Package seqtrace is the runtime half of the call tracer behind `just seqtrace-*`.
Package seqtrace is the runtime half of the call tracer behind `just seqtrace-*`.
seqtrace/browser
Package browser joins what the SPA did in the browser to what the server did for the same request.
Package browser joins what the SPA did in the browser to what the server did for the same request.
seqtrace/cmd/seqtrace command
Command seqtrace builds call-traced binaries and draws sequence diagrams from their traces.
Command seqtrace builds call-traced binaries and draws sequence diagrams from their traces.
seqtrace/diagram
Package diagram turns a seqtrace event log into a tree of steps per request (Build), and renders it as a Mermaid sequence diagram (Diagram.Mermaid) or an indented text tree (Diagram.Text).
Package diagram turns a seqtrace event log into a tree of steps per request (Build), and renders it as a Mermaid sequence diagram (Diagram.Mermaid) or an indented text tree (Diagram.Text).
seqtrace/rewrite
Package rewrite injects seqtrace calls into Go source.
Package rewrite injects seqtrace calls into Go source.

Jump to

Keyboard shortcuts

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