Skip to content

Create derived event rule

Requires ADMIN. Body validated by createDerivedRuleSchema (../../derived/validation). Guards: per-project count cap, anti-cycle (may not subscribe to a derived event), output-event-name uniqueness. See notes for schema uncertainty.

projectId
required
string

Project (tenant) identifier. Row-level tenant isolation is enforced on every query.

Media typeapplication/json
object
name
required
string
ruleType
required
string
Allowed values: event_condition absence
subjectType
required
string
Allowed values: identified_user account
subscribedEvents
required
Array<string>
condition
object | null
outputEventName
required
string
outputEventCategory
string
enabled
boolean
absenceThresholdSeconds

Used only when ruleType=absence. Omit when unused — null is rejected.

integer
>= 1
key
additional properties
any

Created rule.

Media typeapplication/json
object
rule
object
key
additional properties
any

Missing/invalid path input (e.g. projectId) or invalid JSON body.

Media typeapplication/json
object
error
required

Human-readable error message.

string
message
string
Examplegenerated
json
{
"error": "example",
"message": "example"
}

Not authenticated (401 via requireAuthenticated) or insufficient project role (403).

Media typeapplication/json
object
error
required

Human-readable error message.

string
message
string
Examplegenerated
json
{
"error": "example",
"message": "example"
}

Rule count cap reached (error=rule_limit_reached).

Media typeapplication/json
object
error
required

Human-readable error message.

string
message
string
Examplegenerated
json
{
"error": "example",
"message": "example"
}

Validation failed, cycle (error=subscribes_derived_event), or output-name conflict (error=output_event_name_conflict).

Media typeapplication/json
object
error
required

Human-readable error message.

string
message
string
Examplegenerated
json
{
"error": "example",
"message": "example"
}