ridu

package module
v0.2.3 Latest Latest
Warning

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

Go to latest
Published: Sep 12, 2026 License: MIT Imports: 6 Imported by: 0

README

Ridu

Ridu is an open-source, config-as-code backend framework for Go with a headless CMS and Svelte 5 admin built in. It includes authentication, access control, APIs, and background jobs. Define collections, fields, access control, hooks, and plugins in Go. That executable configuration is the source of truth for database migrations, the REST API, generated TypeScript contracts, the Fetch SDK, and the authoring interface. Deploy the application and admin as one Go binary.

If you like Payload's code-first content modelling and PocketBase's single-binary deployment, Ridu brings those ideas together in a Go backend framework. It includes field-level access control, lifecycle hooks, computed fields, typed content blocks, and drafts and versions. Compare the configuration and deployment models and check the current feature limits.

[!IMPORTANT] Ridu is pre-1.0 software. Compatibility may change between minor releases, so evaluate it carefully before using it with production data. Ridu is available under the MIT License.

Ridu's embedded admin dashboard

Why Ridu

  • Config as code. Ridu resolves executable Go configuration into a deterministic, versioned schema manifest.
  • One operation engine. Local Go calls, REST, the SDK, admin, tasks, and plugin transports share authorization, validation, hooks, transactions, population, and redaction.
  • One application binary. The built Svelte admin is embedded in the Go server. npm, Bun, pnpm, or Yarn is used at build time, not as a production runtime.
  • Explicit extension points. Backend plugins are compiled Go packages; admin plugins are statically registered Svelte and TypeScript modules.
  • Project tooling included. The CLI creates projects, generates contracts, manages migrations, runs development, builds releases, and installs optional coding-agent guidance.

Create a project

Open the npm initializer and choose Starter and SQLite for a service-free first run. After the wizard finishes, run the commands it prints:

npm create ridu@latest my-app
cd my-app
npm install
npm run dev

The project records npm as its package manager and pins the matching @riducms/cli version. The same flow works with bun create, pnpm create, or yarn create; the project then uses that manager for development, checks, builds, and plugin packages. Go users can instead install and run the same command directly:

go install github.com/riducms/ridu/cmd/ridu@latest
ridu new

Follow the Quickstart to create the first user and document, then read it through the generated TypeScript SDK. PostgreSQL and MongoDB setup, including existing-project wiring and production limits, is covered by the public adapter guides.

Try the source checkout

Building the source checkout requires Go 1.25 or newer and Bun 1.4.0.

git clone https://github.com/riducms/ridu.git
cd ridu
bun install --frozen-lockfile
make demo

Open http://127.0.0.1:8080/admin/login and sign in with:

  • email: editor@riducms.test
  • password: ridu-browser

The demo uses an in-memory store and resets when it stops, so it does not require PostgreSQL.

Framework contributors can exercise the current checkout's scaffold instead of the registry CLI. Choose a target directory that does not exist:

make dogfood-new TARGET=/tmp/ridu-dogfood-content
cd /tmp/ridu-dogfood-content
./.ridu/bin/ridu dev

To run the interactive Charm wizard against the current checkout, use:

make dogfood-new INTERACTIVE=1

The wizard asks where the project should live. Pass TARGET=/tmp/ridu-interactive-content as well when you want to preselect the directory and proceed directly to the template choice. Cancelling the wizard does not provision local packages or report a ready project.

Set RIDU_ACCESSIBLE=1 to use stable plain-text prompts instead of the full terminal interface. Routine CLI logs use muted short timestamps and a [ridu] scope; warnings and errors add an explicit level, and only error timestamps are bold. Set NO_COLOR (an empty value is sufficient) to disable their ANSI styling. During development Vite owns its warning/error formatting while Go server output remains identifiable by a [server] badge.

Documentation

Repository map

cmd/ridu/                    project CLI
core/                        public application contracts and runtime coordination
field/, query/, schema/      public content-model and query contracts
store/, storage/             public persistence and object-storage contracts
internal/                    framework implementation
adapters/                    official database and object-storage adapters
plugins/                     official backend and paired admin plugins
admin/                       framework-owned Svelte admin
packages/                    npm CLI plus TypeScript protocol, SDK, build, UI, and plugin contracts
migration/                   source-neutral migration building blocks
tests/, testdata/            cross-surface contracts and fixtures
website/                     public product site, guides, and API reference
playground/                  isolated migration and component-evaluation applications

The root Go package is a thin ergonomic facade. Public leaf packages remain independent of it, and production code never imports from the playground. The ownership rules contributors need are summarized in CONTRIBUTING.md.

Develop Ridu

bun install --frozen-lockfile
make check-dev
make check-fast

Use make check-dev for the ordinary edit loop. make check-fast adds generated-project contracts, real Vite integration and production frontend builds; run make check-full before handing off framework changes. Run make performance-check separately for scale and browser timing evidence. Before publishing, run make release-check; it also requires GoReleaser 2.18.0.

Read CONTRIBUTING.md before changing public contracts. The intended Go module is github.com/riducms/ridu, framework JavaScript packages use the @riducms npm scope, and the intended public site is https://riducms.com. Releases are version-coordinated across Go, npm, and official plugins; vulnerabilities should be reported through the private process in SECURITY.md.

Documentation

Overview

Package ridu provides the public application-authoring facade for the Ridu content-management framework.

The facade re-exports the stable authoring and application contracts from package core while keeping ordinary application imports concise. Declarative fields and queries resolve into one schema, and every document operation enters the same internal operation engine.

Index

Constants

View Source
const (
	AccessAllow = core.AccessAllow
	AccessDeny  = core.AccessDeny
	AccessWhere = core.AccessWhere

	AdminPluginAPIVersion = core.AdminPluginAPIVersion
	PluginAPIVersion      = core.PluginAPIVersion

	FrameworkVersion = core.FrameworkVersion

	AuthOperationLogin             = core.AuthOperationLogin
	AuthOperationLogout            = core.AuthOperationLogout
	AuthOperationRefresh           = core.AuthOperationRefresh
	AuthOperationPasswordReset     = core.AuthOperationPasswordReset
	AuthOperationEmailVerification = core.AuthOperationEmailVerification
	AuthOperationAPIKey            = core.AuthOperationAPIKey
	AuthOperationExternalStrategy  = core.AuthOperationExternalStrategy

	TaskBackoffFixed       = core.TaskBackoffFixed
	TaskBackoffLinear      = core.TaskBackoffLinear
	TaskBackoffExponential = core.TaskBackoffExponential
	TaskStateQueued        = store.TaskStateQueued
	TaskStateRunning       = store.TaskStateRunning
	TaskStateSucceeded     = store.TaskStateSucceeded
	TaskStateFailed        = store.TaskStateFailed
	TaskStateCanceled      = store.TaskStateCanceled

	TaskErrorNotRegistered = core.TaskErrorNotRegistered
	TaskErrorUnavailable   = core.TaskErrorUnavailable
	TaskErrorInvalidInput  = core.TaskErrorInvalidInput
	TaskErrorInvalidOutput = core.TaskErrorInvalidOutput
	TaskErrorNotFound      = core.TaskErrorNotFound
	TaskErrorStoreFailed   = core.TaskErrorStoreFailed
	TaskErrorLeaseLost     = core.TaskErrorLeaseLost
)
View Source
const MaxTaskPayloadBytes = core.MaxTaskPayloadBytes

Variables

This section is empty.

Functions

func AbortTask

func AbortTask(code string, cause error) error

func Execute

func Execute(applicationConfig Config, options ...ExecuteOption) error

Execute resolves configuration, initializes plugins, and runs configured services.

func Resolve

func Resolve(applicationConfig Config) (schema.Manifest, error)

Resolve validates executable configuration and returns its canonical manifest.

func RetryTask

func RetryTask(code string, cause error) error

func RetryTaskAfter

func RetryTaskAfter(code string, cause error, delay time.Duration) error

Types

type APIKey

type APIKey = core.APIKey

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type APIKeyInfo

type APIKeyInfo = core.APIKeyInfo

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AccessCapabilities

type AccessCapabilities = core.AccessCapabilities

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AccessContext

type AccessContext = core.AccessContext

AccessContext gives an AccessRule the current operation, actor, submitted data, locale, and access-controlled Local API.

type AccessDecision

type AccessDecision = core.AccessDecision

AccessDecision is the result of an AccessRule. Construct one with Allow, Deny, or Where rather than its zero value.

func Allow

func Allow() AccessDecision

Allow authorizes an operation without adding a document filter.

func Deny

func Deny() AccessDecision

Deny rejects an operation.

func Where

func Where(expression query.Expression) AccessDecision

Where authorizes only documents matching expression.

type AccessDecisionKind

type AccessDecisionKind = core.AccessDecisionKind

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AccessRule

type AccessRule = core.AccessRule

AccessRule authorizes one collection or global operation. Assign it through CollectionAccess or GlobalAccess; returning an error stops the operation.

type AdminConfig

type AdminConfig = core.AdminConfig

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AdminLanguage

type AdminLanguage = core.AdminLanguage

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AdminLocalizationConfig

type AdminLocalizationConfig = core.AdminLocalizationConfig

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AdminPluginMetadata

type AdminPluginMetadata = core.AdminPluginMetadata

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AdminTimeZone

type AdminTimeZone = core.AdminTimeZone

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AfterCommitDispatcher

type AfterCommitDispatcher = core.AfterCommitDispatcher

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AfterCommitEffect

type AfterCommitEffect = core.AfterCommitEffect

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type App

type App = core.App

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

func New

func New(applicationConfig Config, backend store.Store) (*App, error)

New builds an application runtime using backend after resolving configuration.

type AuditEvent

type AuditEvent = core.AuditEvent

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AuthAccess

type AuthAccess = core.AuthAccess

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AuthAccessRule

type AuthAccessRule = core.AuthAccessRule

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AuthConfig

type AuthConfig = core.AuthConfig

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AuthContext

type AuthContext = core.AuthContext

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AuthHook

type AuthHook = core.AuthHook

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AuthHooks

type AuthHooks = core.AuthHooks

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AuthIdentity

type AuthIdentity = core.AuthIdentity

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AuthOperation

type AuthOperation = core.AuthOperation

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AuthSession

type AuthSession = core.AuthSession

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AuthSessionInfo

type AuthSessionInfo = core.AuthSessionInfo

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AuthStrategy

type AuthStrategy = core.AuthStrategy

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AuthStrategyContext

type AuthStrategyContext = core.AuthStrategyContext

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type AuthStrategyResult

type AuthStrategyResult = core.AuthStrategyResult

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type BulkOptions added in v0.2.2

type BulkOptions = core.BulkOptions

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type CapabilityOptions

type CapabilityOptions = core.CapabilityOptions

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type Collection

type Collection = core.Collection

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type CollectionAccess

type CollectionAccess = core.CollectionAccess

CollectionAccess configures per-operation authorization for a Collection. Assign it to Collection.Access. Use Where when access to existing documents depends on their stored values.

For example:

Access: ridu.CollectionAccess{
	Create: func(ctx ridu.AccessContext) (ridu.AccessDecision, error) {
		if ctx.Actor == nil {
			return ridu.Deny(), nil
		}
		return ridu.Allow(), nil
	},
}

type CollectionAdmin

type CollectionAdmin = core.CollectionAdmin

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type CollectionHooks

type CollectionHooks = core.CollectionHooks

CollectionHooks groups resource-level lifecycle callbacks. Assign it to Collection.Hooks or Global.Hooks; use BeforeChange to change stored values, AfterRead to change a response, and AfterCommit for post-commit effects.

For example:

Hooks: ridu.CollectionHooks{
	BeforeChange: []ridu.Hook{
		func(ctx ridu.HookContext) error {
			ctx.Data["status"] = store.String("draft")
			return nil
		},
	},
}

type CollectionIndex

type CollectionIndex = core.CollectionIndex

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type CollectionLabels

type CollectionLabels = core.CollectionLabels

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type Config

type Config = core.Config

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type ConfigTransformer

type ConfigTransformer = core.ConfigTransformer

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type DescriptorProvider

type DescriptorProvider = core.DescriptorProvider

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type DistinctOptions

type DistinctOptions = core.DistinctOptions

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type DocumentLockConfig

type DocumentLockConfig = core.DocumentLockConfig

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type Endpoint

type Endpoint = core.Endpoint

Endpoint declares an application-owned HTTP route on Config, Collection, or Global. Its handler must enforce any endpoint-specific authorization.

For example, inside Collection.Endpoints:

{
	Method: http.MethodGet,
	Path:   "/:id/tracking",
	Handler: func(ctx ridu.EndpointContext) {
		fmt.Fprint(ctx.Writer, ctx.RouteParams["id"])
	},
}

type EndpointContext

type EndpointContext = core.EndpointContext

EndpointContext gives an EndpointHandler its matched HTTP request, response writer, route parameters, actor, and access-controlled Local API.

type EndpointHandler

type EndpointHandler = core.EndpointHandler

EndpointHandler serves one custom Endpoint by writing its response through EndpointContext.Writer.

type EndpointProvider

type EndpointProvider = core.EndpointProvider

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type ExecuteOption

type ExecuteOption = core.ExecuteOption

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

func WithAddress

func WithAddress(address string) ExecuteOption

WithAddress configures the HTTP listen address. The default is :8080.

func WithHandlerOptions

func WithHandlerOptions(options HandlerOptions) ExecuteOption

WithHandlerOptions configures HTTP security, limits, and observation hooks.

func WithProjectMigrations

func WithProjectMigrations(driver migration.ProjectDriver) ExecuteOption

WithProjectMigrations registers an adapter-owned compiled migration driver for checksum-bound application data callbacks.

func WithServerOptions

func WithServerOptions(options ServerOptions) ExecuteOption

WithServerOptions customizes production socket and graceful-drain bounds.

func WithStore

func WithStore(factory StoreFactory) ExecuteOption

WithStore configures the singular document-store adapter lazily.

func WithUploadStorage

func WithUploadStorage(factory StorageFactory) ExecuteOption

WithUploadStorage configures the upload storage factory used by Execute.

type FieldCapabilities

type FieldCapabilities = core.FieldCapabilities

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type FieldValidatorProvider

type FieldValidatorProvider = core.FieldValidatorProvider

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type FindOptions

type FindOptions = core.FindOptions

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type GenerationProvider

type GenerationProvider = core.GenerationProvider

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type Global

type Global = core.Global

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type GlobalAccess

type GlobalAccess = core.GlobalAccess

GlobalAccess configures read and write authorization for a Global. Assign it to Global.Access. Existing singleton operations may use Where, while the first update must return Allow because there is no stored row to filter.

type GlobalAdmin

type GlobalAdmin = core.GlobalAdmin

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type HandlerOptions

type HandlerOptions = core.HandlerOptions

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type Hook

type Hook = core.Hook

Hook runs during one collection or global lifecycle phase. Register hooks in CollectionHooks. An error stops the phase and rolls back an uncommitted write; AfterCommit is the exception because the write has committed and later effects still run while their errors are reported.

type HookContext

type HookContext = core.HookContext

HookContext gives a Hook the current operation, actor, values, document, and access-controlled Local API. Which values are available depends on the phase.

type HookProvider

type HookProvider = core.HookProvider

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type ImageSize

type ImageSize = core.ImageSize

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type ImportOptions

type ImportOptions = core.ImportOptions

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type JoinMutationResult

type JoinMutationResult = core.JoinMutationResult

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type ListOptions

type ListOptions = core.ListOptions

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type ListWindowOptions

type ListWindowOptions = core.ListWindowOptions

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type LivePreviewConfig

type LivePreviewConfig = core.LivePreviewConfig

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type LocalAPI

type LocalAPI = core.LocalAPI

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type Locale

type Locale = core.Locale

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type LocaleOptions

type LocaleOptions = core.LocaleOptions

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type LocalizationConfig

type LocalizationConfig = core.LocalizationConfig

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type LoginOptions

type LoginOptions = core.LoginOptions

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type MutationOptions

type MutationOptions = core.MutationOptions

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type OperationCapabilities

type OperationCapabilities = core.OperationCapabilities

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type OperationError

type OperationError = core.OperationError

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type PasswordPolicy

type PasswordPolicy = core.PasswordPolicy

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type PasswordResetConfig

type PasswordResetConfig = core.PasswordResetConfig

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type PasswordResetNotification

type PasswordResetNotification = core.PasswordResetNotification

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type Plugin

type Plugin = core.Plugin

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type PluginDescriptor

type PluginDescriptor = core.PluginDescriptor

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type PluginFieldType

type PluginFieldType = core.PluginFieldType

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type PluginFieldValidationContext

type PluginFieldValidationContext = core.PluginFieldValidationContext

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type PluginFieldValidator

type PluginFieldValidator = core.PluginFieldValidator

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type PluginGeneratedArtifact

type PluginGeneratedArtifact = core.PluginGeneratedArtifact

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type PluginGenerationContext

type PluginGenerationContext = core.PluginGenerationContext

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type PluginHookContribution

type PluginHookContribution = core.PluginHookContribution

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type PluginTransportContext

type PluginTransportContext = core.PluginTransportContext

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type PreviewBreakpoint

type PreviewBreakpoint = core.PreviewBreakpoint

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type ReadinessCheck

type ReadinessCheck = core.ReadinessCheck

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type ReconcileResult

type ReconcileResult = core.ReconcileResult

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type RequestErrorEvent

type RequestErrorEvent = core.RequestErrorEvent

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type RequestObservation

type RequestObservation = core.RequestObservation

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type RiduCompatibility

type RiduCompatibility = core.RiduCompatibility

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type ServerOptions

type ServerOptions = core.ServerOptions

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type StorageFactory

type StorageFactory = core.StorageFactory

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type StoreFactory

type StoreFactory = core.StoreFactory

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type TaskBackoff

type TaskBackoff = core.TaskBackoff

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type TaskContext

type TaskContext = core.TaskContext

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type TaskDefinition

type TaskDefinition = core.TaskDefinition

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type TaskEnqueueOptions

type TaskEnqueueOptions = core.TaskEnqueueOptions

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type TaskError

type TaskError = core.TaskError

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type TaskErrorCode

type TaskErrorCode = core.TaskErrorCode

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type TaskHandler

type TaskHandler[Input, Output any] = core.TaskHandler[Input, Output]

type TaskOption

type TaskOption = core.TaskOption

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

func TaskAdmissionReconciler

func TaskAdmissionReconciler(reconcile TaskReconciler) TaskOption

func TaskQueue

func TaskQueue(queue string) TaskOption

func TaskRetention

func TaskRetention(retention time.Duration) TaskOption

func TaskRetries

func TaskRetries(maxAttempts int, delay, maxDelay time.Duration, backoff TaskBackoff) TaskOption

func TaskTimeout

func TaskTimeout(timeout time.Duration) TaskOption

type TaskReceipt

type TaskReceipt[Output any] = core.TaskReceipt[Output]

type TaskReconciler

type TaskReconciler = core.TaskReconciler

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type TaskResult

type TaskResult[Output any] = core.TaskResult[Output]

type TaskRunSummary

type TaskRunSummary = core.TaskRunSummary

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type TaskState

type TaskState = store.TaskState

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type TransportProvider

type TransportProvider = core.TransportProvider

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type TypedMutationOptions added in v0.2.2

type TypedMutationOptions = core.TypedMutationOptions

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type TypedTask

type TypedTask[Input, Output any] = core.TypedTask[Input, Output]

func NewTask

func NewTask[Input, Output any](slug string, handler TaskHandler[Input, Output], options ...TaskOption) TypedTask[Input, Output]

type UploadConfig

type UploadConfig = core.UploadConfig

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type UploadInput

type UploadInput = core.UploadInput

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type VerifyEmailConfig

type VerifyEmailConfig = core.VerifyEmailConfig

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type VerifyEmailNotification

type VerifyEmailNotification = core.VerifyEmailNotification

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

type VersionConfig

type VersionConfig = core.VersionConfig

Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.

Directories

Path Synopsis
adapters
mongodb
Package mongodb provides Ridu's official MongoDB document store.
Package mongodb provides Ridu's official MongoDB document store.
postgres
Package postgres provides Ridu's first official document store.
Package postgres provides Ridu's first official document store.
sqlite
Package sqlite provides Ridu's official embedded SQLite document store.
Package sqlite provides Ridu's official embedded SQLite document store.
storage/local
Package local provides filesystem object storage for development and single-node deployments.
Package local provides filesystem object storage for development and single-node deployments.
storage/s3
Package s3 provides a dependency-free S3-compatible object backend.
Package s3 provides a dependency-free S3-compatible object backend.
cmd
ridu command
Command ridu is the portable project and build orchestrator for Ridu.
Command ridu is the portable project and build orchestrator for Ridu.
Package core owns Ridu's application contracts and runtime.
Package core owns Ridu's application contracts and runtime.
examples
blocks/cmd/server command
This entry exposes the same executable generation and migration protocol as a generated application.
This entry exposes the same executable generation and migration protocol as a generated application.
blocks/content
Package content defines a finite block and rich-text publishing application.
Package content defines a finite block and rich-text publishing application.
blocks/generated
Code generated by Ridu.
Code generated by Ridu.
blocks/render
Package render demonstrates ordinary Go rendering of generated block variants.
Package render demonstrates ordinary Go rendering of generated block variants.
documentation/adoption
Package adoption compile-checks the public field, adapter, and plugin surfaces used throughout the adoption documentation.
Package adoption compile-checks the public field, adapter, and plugin surfaces used throughout the adoption documentation.
documentation/quickstart/content
Package content contains the compile-tested model used by the public Quickstart.
Package content contains the compile-tested model used by the public Quickstart.
Package field defines the stored values, validation, access rules, hooks, and admin presentation of fields in Ridu collections and globals.
Package field defines the stored values, validation, access rules, hooks, and admin presentation of fields in Ridu collections and globals.
internal
adminassets
Package adminassets owns the framework admin build embedded in Ridu servers.
Package adminassets owns the framework admin build embedded in Ridu servers.
agentdocs
Package agentdocs installs the release-owned Ridu skill bundle into generated and existing projects without overwriting user-authored instructions.
Package agentdocs installs the release-owned Ridu skill bundle into generated and existing projects without overwriting user-authored instructions.
blocktypes
Package blocktypes assigns ordinary Blocks generated symbols from the resolved manifest.
Package blocktypes assigns ordinary Blocks generated symbols from the resolved manifest.
cli
Package cli implements the portable Ridu command-line interface behind the thin cmd/ridu entry point.
Package cli implements the portable Ridu command-line interface behind the thin cmd/ridu entry point.
commandrun
Package commandrun preserves cancellation identity for foreground commands.
Package commandrun preserves cancellation identity for foreground commands.
config
Package config validates and normalizes the public authoring model into a canonical immutable schema manifest.
Package config validates and normalizes the public authoring model into a canonical immutable schema manifest.
dogfood/admin command
Command admin runs the framework repository's admin fixture and Vite server together.
Command admin runs the framework repository's admin fixture and Vite server together.
dogfood/new command
Command dogfood-new builds and exercises the real Ridu CLI against a local versioned module proxy.
Command dogfood-new builds and exercises the real Ridu CLI against a local versioned module proxy.
dogfood/playground command
Command playground-ridu-hydrate restores the ignored development-only packages and CLI used by the committed generated Ridu playground.
Command playground-ridu-hydrate restores the ignored development-only packages and CLI used by the committed generated Ridu playground.
embedded
Package embedded interprets the resolved, bounded envelope declared by a plugin.
Package embedded interprets the resolved, bounded envelope declared by a plugin.
frameworkpackages
Package frameworkpackages publishes the framework's unpublished frontend workspaces into a generated project for local dogfood testing.
Package frameworkpackages publishes the framework's unpublished frontend workspaces into a generated project for local dogfood testing.
frameworkproxy
Package frameworkproxy publishes a Ridu checkout to a local Go module proxy for release-path tests and manual framework dogfooding.
Package frameworkproxy publishes a Ridu checkout to a local Go module proxy for release-path tests and manual framework dogfooding.
generate
Package generate obtains a resolved manifest from an executable project and installs generated artifacts atomically.
Package generate obtains a resolved manifest from an executable project and installs generated artifacts atomically.
goworkspace
Package goworkspace keeps project Go commands from being captured by an unrelated enclosing workspace.
Package goworkspace keeps project Go commands from being captured by an unrelated enclosing workspace.
jsonlimit
Package jsonlimit validates untrusted JSON structure before application decoders allocate recursive values.
Package jsonlimit validates untrusted JSON structure before application decoders allocate recursive values.
localization
Package localization owns locale request resolution and the logical single-locale/canonical-storage transform shared by operation engines and strict store fixtures.
Package localization owns locale request resolution and the logical single-locale/canonical-storage transform shared by operation engines and strict store fixtures.
migrationartifact
Package migrationartifact owns atomic, immutable migration artifact files.
Package migrationartifact owns atomic, immutable migration artifact files.
pluginregistry
Package pluginregistry owns the explicit, versioned plugin installation registry used by generated Ridu applications.
Package pluginregistry owns the explicit, versioned plugin installation registry used by generated Ridu applications.
pluginscaffold
Package pluginscaffold renders a distributable paired Ridu plugin.
Package pluginscaffold renders a distributable paired Ridu plugin.
population
Package population owns schema-driven relationship population traversal.
Package population owns schema-driven relationship population traversal.
postgresmigration
Package postgresmigration owns private deterministic artifact assembly that is shared by the PostgreSQL planner and the portable CLI.
Package postgresmigration owns private deterministic artifact assembly that is shared by the PostgreSQL planner and the portable CLI.
primitivefield
Package primitivefield contains the private, shared primitive-list query rules.
Package primitivefield contains the private, shared primitive-list query rules.
project
Package project owns the private, versioned machine protocol between the portable Ridu CLI and an application's compiled project entry.
Package project owns the private, versioned machine protocol between the portable Ridu CLI and an application's compiled project entry.
projectfile
Package projectfile discovers and validates the structural ridu.toml file owned by a generated application.
Package projectfile discovers and validates the structural ridu.toml file owned by a generated application.
referenceindex
Package referenceindex derives and reconciles current relationship and upload references from canonical store values.
Package referenceindex derives and reconciles current relationship and upload references from canonical store values.
releaselicense command
Command releaselicense inventories licences for modules linked into a Go binary.
Command releaselicense inventories licences for modules linked into a Go binary.
remotefile
Package remotefile downloads user-supplied asset URLs without allowing the server to become a proxy into loopback, private, link-local, or metadata networks.
Package remotefile downloads user-supplied asset URLs without allowing the server to become a proxy into loopback, private, link-local, or metadata networks.
scaffold
Package scaffold renders a generated Ridu application without overwriting existing project files.
Package scaffold renders a generated Ridu application without overwriting existing project files.
schemadiff
Package schemadiff compares canonical manifests for migration intent that cannot be inferred safely from a database schema alone.
Package schemadiff compares canonical manifests for migration intent that cannot be inferred safely from a database schema alone.
teststore
Package teststore provides a strict transactional fake for operation and adapter conformance tests.
Package teststore provides a strict transactional fake for operation and adapter conformance tests.
typescript
Package typescript generates checked TypeScript contracts from Go-owned protocol and schema constants.
Package typescript generates checked TypeScript contracts from Go-owned protocol and schema constants.
Package migration defines Ridu's database-agnostic, reviewable migration artifact vocabulary.
Package migration defines Ridu's database-agnostic, reviewable migration artifact vocabulary.
payload
Package payload imports a normalized Payload CMS export without coupling Ridu to Payload's database schema.
Package payload imports a normalized Payload CMS export without coupling Ridu to Payload's database schema.
Package operation provides the values and context passed to field validators, hooks, defaults, and access rules.
Package operation provides the values and context passed to field validators, hooks, defaults, and access rules.
plugins
formbuilder
Package formbuilder contributes Payload-familiar dynamic form definitions, submission persistence, validation, payment callbacks, and email delivery.
Package formbuilder contributes Payload-familiar dynamic form definitions, submission persistence, validation, payment callbacks, and email delivery.
graphql
Package graphql provides Ridu's optional, manifest-derived GraphQL transport.
Package graphql provides Ridu's optional, manifest-derived GraphQL transport.
mcp
Package mcp exposes explicitly selected Ridu content reads through Model Context Protocol without bypassing the ordinary authorization and operation engine.
Package mcp exposes explicitly selected Ridu content reads through Model Context Protocol without bypassing the ordinary authorization and operation engine.
richtext
Package richtext provides Ridu's official versioned rich-text field plugin.
Package richtext provides Ridu's official versioned rich-text field plugin.
seo
Package seo contributes Payload-familiar search metadata fields and a paired admin authoring experience without moving executable generators into the schema manifest.
Package seo contributes Payload-familiar search metadata fields and a paired admin authoring experience without moving executable generators into the schema manifest.
Package plugintest provides the public backend conformance suite for Ridu plugins.
Package plugintest provides the public backend conformance suite for Ridu plugins.
Package protocol defines stable JSON envelopes shared by Ridu's HTTP API, generated TypeScript contracts, Fetch SDK, and admin.
Package protocol defines stable JSON envelopes shared by Ridu's HTTP API, generated TypeScript contracts, Fetch SDK, and admin.
Package query defines Ridu's transport-independent query language.
Package query defines Ridu's transport-independent query language.
Package schema defines the immutable, versioned representation of a resolved Ridu configuration.
Package schema defines the immutable, versioned representation of a resolved Ridu configuration.
Package storage defines the public object-storage boundary used by upload collections.
Package storage defines the public object-storage boundary used by upload collections.
Package store defines public document-storage and transaction contracts.
Package store defines public document-storage and transaction contracts.
conformance
Package conformance provides the reusable black-box contract suite for Ridu document-store adapters.
Package conformance provides the reusable black-box contract suite for Ridu document-store adapters.
tests
contracts/admin_server command
Command admin_server is a deterministic browser-verification fixture for the embedded admin.
Command admin_server is a deterministic browser-verification fixture for the embedded admin.
contracts/blockreferences
Package blockreferences supplies paired inline/reference authoring fixtures.
Package blockreferences supplies paired inline/reference authoring fixtures.
contracts/dynamicdefaults
Package dynamicdefaults exercises server initialization through the real admin.
Package dynamicdefaults exercises server initialization through the real admin.
contracts/embedded_plugin
Package embeddedplugin is a small structured-outline plugin used by the embedded authoring reference and cross-surface contract tests.
Package embeddedplugin is a small structured-outline plugin used by the embedded authoring reference and cross-surface contract tests.
contracts/issuetargets
Package issuetargets exercises aggregate validators through public APIs.
Package issuetargets exercises aggregate validators through public APIs.
contracts/livevalidation
Package livevalidation exercises opt-in feedback using the same business rules as authoritative saves, through ordinary and plugin-owned field editors.
Package livevalidation exercises opt-in feedback using the same business rules as authoritative saves, through ordinary and plugin-owned field editors.
contracts/primitivelists
Package primitivelists exercises ordered primitive lists through public APIs.
Package primitivelists exercises ordered primitive lists through public APIs.
contracts/primitivelists/generated
Code generated by Ridu.
Code generated by Ridu.
contracts/query_access
Package queryaccess exercises caller query confidentiality through the shared operation engine and REST against each real database adapter.
Package queryaccess exercises caller query confidentiality through the shared operation engine and REST against each real database adapter.
contracts/richtext_blocks
Package richtextblocks runs the same rich-text block acceptance contract on real adapters.
Package richtextblocks runs the same rich-text block acceptance contract on real adapters.
contracts/unifiedfields
Package unifiedfields is the shared Gate 4 generation, transport and admin fixture.
Package unifiedfields is the shared Gate 4 generation, transport and admin fixture.
contracts/unifiedfields/generated
Code generated by Ridu.
Code generated by Ridu.
performance/graphqlfixture
Package graphqlfixture provides the representative schema used by the optional-GraphQL memory comparison.
Package graphqlfixture provides the representative schema used by the optional-GraphQL memory comparison.
website
tools/referencegen/goextract command
Command goextract emits the public Go declaration surface used by the website reference generator.
Command goextract emits the public Go declaration surface used by the website reference generator.

Jump to

Keyboard shortcuts

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