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
- func AbortTask(code string, cause error) error
- func Execute(applicationConfig Config, options ...ExecuteOption) error
- func Reject(message string, issues ...operation.Issue) error
- func Resolve(applicationConfig Config) (schema.Manifest, error)
- func RetryTask(code string, cause error) error
- func RetryTaskAfter(code string, cause error, delay time.Duration) error
- type APIKey
- type APIKeyInfo
- type AccessCapabilities
- type AccessContext
- type AccessDecision
- type AccessDecisionKind
- type AccessRule
- type AdminConfig
- type AdminLanguage
- type AdminLoadContext
- type AdminLoaderDefinition
- type AdminLocalizationConfig
- type AdminPluginMetadata
- type AdminTimeZone
- type AfterCommitDispatcher
- type AfterCommitEffect
- type App
- type AuditEvent
- type AuthAccess
- type AuthAccessRule
- type AuthConfig
- type AuthContext
- type AuthHook
- type AuthHooks
- type AuthIdentity
- type AuthOperation
- type AuthSession
- type AuthSessionInfo
- type AuthStrategy
- type AuthStrategyContext
- type AuthStrategyResult
- type BulkOptions
- type CapabilityOptions
- type Collection
- type CollectionAccess
- type CollectionAdmin
- type CollectionHooks
- type CollectionIndex
- type CollectionLabels
- type Config
- type ConfigTransformer
- type DescriptorProvider
- type DistinctOptions
- type DocumentLockConfig
- type Endpoint
- type EndpointContext
- type EndpointHandler
- type EndpointProvider
- type ExecuteOption
- func WithAddress(address string) ExecuteOption
- func WithHandlerOptions(options HandlerOptions) ExecuteOption
- func WithProjectMigrations(driver migration.ProjectDriver) ExecuteOption
- func WithServerOptions(options ServerOptions) ExecuteOption
- func WithStore(factory StoreFactory) ExecuteOption
- func WithUploadStorage(factory StorageFactory) ExecuteOption
- type FieldCapabilities
- type FieldValidatorProvider
- type FindOptions
- type GenerationProvider
- type Global
- type GlobalAccess
- type GlobalAdmin
- type HandlerOptions
- type Hook
- type HookContext
- type HookProvider
- type ImageSize
- type ImportOptions
- type JoinMutationResult
- type ListOptions
- type ListWindowOptions
- type LivePreviewConfig
- type LocalAPI
- type Locale
- type LocaleOptions
- type LocalizationConfig
- type LoginOptions
- type MutationOptions
- type OperationCapabilities
- type OperationError
- type PasswordPolicy
- type PasswordResetConfig
- type PasswordResetNotification
- type Plugin
- type PluginDescriptor
- type PluginFieldType
- type PluginFieldValidationContext
- type PluginFieldValidator
- type PluginGeneratedArtifact
- type PluginGenerationContext
- type PluginHookContribution
- type PluginTransportContext
- type PreviewBreakpoint
- type PublicationScheduleOptions
- type ReadinessCheck
- type ReconcileResult
- type RemoteUploadInput
- type RequestErrorEvent
- type RequestObservation
- type RiduCompatibility
- type RootHooks
- type ServerOptions
- type StorageFactory
- type StoreFactory
- type TaskBackoff
- type TaskContext
- type TaskDefinition
- type TaskEnqueueOptions
- type TaskError
- type TaskErrorCode
- type TaskHandler
- type TaskOption
- func TaskAdmissionReconciler(reconcile TaskReconciler) TaskOption
- func TaskQueue(queue string) TaskOption
- func TaskRetention(retention time.Duration) TaskOption
- func TaskRetries(maxAttempts int, delay, maxDelay time.Duration, backoff TaskBackoff) TaskOption
- func TaskTimeout(timeout time.Duration) TaskOption
- type TaskReceipt
- type TaskReconciler
- type TaskResult
- type TaskRunSummary
- type TaskState
- type TransportProvider
- type TypedMutationOptions
- type TypedTask
- type UpdateUploadInput
- type UploadConfig
- type UploadGrant
- type UploadGrantRequest
- type UploadImageEdit
- type UploadInput
- type VerifyEmailConfig
- type VerifyEmailNotification
- type VersionConfig
Constants ¶
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 AuthOperationRotate = core.AuthOperationRotate AuthOperationSession = core.AuthOperationSession 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 TaskErrorInvalidInput = core.TaskErrorInvalidInput TaskErrorInvalidOutput = core.TaskErrorInvalidOutput TaskErrorNotFound = core.TaskErrorNotFound TaskErrorStoreFailed = core.TaskErrorStoreFailed TaskErrorLeaseLost = core.TaskErrorLeaseLost )
const MaxTaskPayloadBytes = core.MaxTaskPayloadBytes
Variables ¶
This section is empty.
Functions ¶
func Execute ¶
func Execute(applicationConfig Config, options ...ExecuteOption) error
Execute resolves configuration, initializes plugins, and runs configured services.
func Reject ¶ added in v0.5.0
Reject stops an operation from a collection, global, or field hook and shows message to the person who made the request. The admin displays it, and REST, the SDK, and the Local API return it as a "rejected" error (HTTP 422). Any other hook error is reported as an internal failure.
Issues mark fields to fix. In a field hook, an issue's Target starts at that field; in a collection or global hook, it starts at the document root:
return ridu.Reject("Remove the article from the homepage first",
operation.Issue{Code: "featured", Message: "Unfeature it", Target: operation.At("featured")})
Types ¶
type 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 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 AdminLoadContext ¶ added in v0.3.0
type AdminLoadContext = core.AdminLoadContext
Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.
type AdminLoaderDefinition ¶ added in v0.3.0
type AdminLoaderDefinition = core.AdminLoaderDefinition
Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.
func NewAdminLoader ¶ added in v0.3.0
func NewAdminLoader[Input, Output any](key string, handler func(AdminLoadContext, Input) (Output, error)) AdminLoaderDefinition
NewAdminLoader registers a typed, authenticated admin read function.
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 ¶
Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.
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 ¶
Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.
type 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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.
type 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 ¶
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 PublicationScheduleOptions ¶ added in v0.3.0
type PublicationScheduleOptions = core.PublicationScheduleOptions
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 RemoteUploadInput ¶ added in v0.3.0
type RemoteUploadInput = core.RemoteUploadInput
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 RootHooks ¶ added in v0.5.0
RootHooks holds hooks for the whole application. Assign it to Config.Hooks. Its AfterError hooks see every failed operation, including failures that happen before Ridu knows which collection or global is involved.
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 ¶
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 ¶
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 ¶
func NewTask ¶
func NewTask[Input, Output any](slug string, handler TaskHandler[Input, Output], options ...TaskOption) TypedTask[Input, Output]
type UpdateUploadInput ¶ added in v0.3.0
type UpdateUploadInput = core.UpdateUploadInput
Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.
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 UploadGrant ¶ added in v0.4.0
type UploadGrant = core.UploadGrant
Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.
type UploadGrantRequest ¶ added in v0.4.0
type UploadGrantRequest = core.UploadGrantRequest
Public authoring and runtime contracts live in core. These aliases keep the root package as the ergonomic application-facing entry point.
type UploadImageEdit ¶ added in v0.3.0
type UploadImageEdit = core.UploadImageEdit
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. |
|
blockgraph
Package blockgraph describes where a resolved schema places its block definitions.
|
Package blockgraph describes where a resolved schema places its block definitions. |
|
blockrename
Package blockrename moves the stored content of a confirmed block field rename.
|
Package blockrename moves the stored content of a confirmed block field rename. |
|
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. |
|
datatransform
Package datatransform is the migration.DataTransaction that every official adapter gives a compiled data transform.
|
Package datatransform is the migration.DataTransaction that every official adapter gives a compiled data transform. |
|
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. |
|
durable
Package durable makes completed filesystem changes survive a crash.
|
Package durable makes completed filesystem changes survive a crash. |
|
embedded
Package embedded interprets the resolved, bounded envelope declared by a plugin.
|
Package embedded interprets the resolved, bounded envelope declared by a plugin. |
|
enableversions
Package enableversions plans and checks a collection or global that starts keeping versions while it may already store documents.
|
Package enableversions plans and checks a collection or global that starts keeping versions while it may already store documents. |
|
fieldchange
Package fieldchange owns schema-addressed field-kind recovery for development and the matching fail-closed admission for immutable migration planning.
|
Package fieldchange owns schema-addressed field-kind recovery for development and the matching fail-closed admission for immutable migration planning. |
|
fileuri
Package fileuri converts between operating-system paths and RFC 8089 file URLs, including Windows drive and UNC paths.
|
Package fileuri converts between operating-system paths and RFC 8089 file URLs, including Windows drive and UNC paths. |
|
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. |
|
localnet
Package localnet recognizes database endpoints that never leave the host.
|
Package localnet recognizes database endpoints that never leave the host. |
|
localrelease
command
Command local-release stages the working tree as a published-style Ridu release and serves it locally.
|
Command local-release stages the working tree as a published-style Ridu release and serves it locally. |
|
membership
Package membership owns the query contract for fields whose value is a set of items: text and number lists, has-many selects, has-many relationships and uploads, and polymorphic relationships.
|
Package membership owns the query contract for fields whose value is a set of items: text and number lists, has-many selects, has-many relationships and uploads, and polymorphic relationships. |
|
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 for the PostgreSQL planner, which artifact creation and the runner share.
|
Package postgresmigration owns private deterministic artifact assembly for the PostgreSQL planner, which artifact creation and the runner share. |
|
primitivefield
Package primitivefield contains the private storage rules shared by text and number lists: their index restrictions and value-shape evolution.
|
Package primitivefield contains the private storage rules shared by text and number lists: their index restrictions and value-shape evolution. |
|
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. |
|
querypath
Package querypath holds the caller query-path rules that the operation engine and the store adapters share.
|
Package querypath holds the caller query-path rules that the operation engine and the store adapters share. |
|
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. |
|
requiredfield
Package requiredfield owns the stored-value audit that admits a field becoming required.
|
Package requiredfield owns the stored-value audit that admits a field becoming required. |
|
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. |
|
schematest
Package schematest builds bound schemas for tests that construct them in Go rather than resolving configuration.
|
Package schematest builds bound schemas for tests that construct them in Go rather than resolving configuration. |
|
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/cascade
Package cascade is the cross-adapter contract for cascade delete policies: deleting a document also deletes the documents it owns, through the normal delete lifecycle and in one transaction.
|
Package cascade is the cross-adapter contract for cascade delete policies: deleting a document also deletes the documents it owns, through the normal delete lifecycle and in one transaction. |
|
contracts/dynamicdefaults
Package dynamicdefaults exercises server initialization through the real admin.
|
Package dynamicdefaults exercises server initialization through the real admin. |
|
contracts/editor_server
command
Command editor_server serves the posts that the SvelteKit editor fixture (tests/contracts/editor_app) loads, edits and saves through its generated client.
|
Command editor_server serves the posts that the SvelteKit editor fixture (tests/contracts/editor_app) loads, edits and saves through its generated client. |
|
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/live_server
command
|
|
|
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/nested_paths
Package nestedpaths verifies that filters through more than one repeated container (arrays and blocks) mean the same thing on every store adapter, and that sorting through one is rejected before any adapter runs.
|
Package nestedpaths verifies that filters through more than one repeated container (arrays and blocks) mean the same thing on every store adapter, and that sorting through one is rejected before any adapter runs. |
|
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/query_semantics
Package querysemantics verifies that membership filters on set-valued fields, text matching inside JSON values and sort admission mean the same thing on every store adapter and through every transport.
|
Package querysemantics verifies that membership filters on set-valued fields, text matching inside JSON values and sort admission mean the same thing on every store adapter and through every transport. |
|
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/blocks/blockspec
Package blockspec builds the Ridu configuration of the block-heavy benchmark from the framework-neutral JSON spec written by ../spec.ts.
|
Package blockspec builds the Ridu configuration of the block-heavy benchmark from the framework-neutral JSON spec written by ../spec.ts. |
|
performance/blocks/planning
command
Command planning measures how migration planning scales on the block-heavy benchmark schemas.
|
Command planning measures how migration planning scales on the block-heavy benchmark schemas. |
|
performance/blocks/ridu
command
Command ridu is the Ridu side of the block-heavy Ridu/Payload benchmark.
|
Command ridu is the Ridu side of the block-heavy Ridu/Payload benchmark. |
|
performance/graphql_with
command
|
|
|
performance/graphql_without
command
|
|
|
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. |
