Class: RuleRepositories
Defined in: server/rules/rule-repositories.ts:49
Holds the rules repositories and exposes a transaction() entry point.
Uses the ambient Prisma client registered via registerPrismaClient /
initPrismaClient on @the-kaizen-labs/taproot/persistence. Repositories route
their Prisma handle through TransactionManager, so inside
transaction(fn) every this.tx.* call on any repo resolves to the
active transaction automatically.
Two flavors of parent repo coexist:
rules/conditions— read-only, version-flattened, engine-shaped. Used by the engine and any consumer that wants theRule/ConditionZod-validated view.rulesCrud/conditionsCrud(+ruleVersions,conditionVersions) — CRUD over the raw Prisma rows. Used by services to author and version rules. Returns camelCaseRules/RuleVersionsrow types directly.
Mirrors FormRepositories from forms/server.
Constructors
Constructor
new RuleRepositories(options?: RuleRepositoriesOptions): RuleRepositories;Defined in: server/rules/rule-repositories.ts:66
Parameters
| Parameter | Type |
|---|---|
options | RuleRepositoriesOptions |
Returns
RuleRepositories
Properties
conditions
readonly conditions: ConditionRepository;Defined in: server/rules/rule-repositories.ts:53
conditionsCrud
readonly conditionsCrud: ConditionCrudRepository;Defined in: server/rules/rule-repositories.ts:56
conditionVersions
readonly conditionVersions: ConditionVersionRepository;Defined in: server/rules/rule-repositories.ts:57
rules
readonly rules: RuleRepository;Defined in: server/rules/rule-repositories.ts:52
rulesCrud
readonly rulesCrud: RuleCrudRepository;Defined in: server/rules/rule-repositories.ts:54
ruleVersions
readonly ruleVersions: RuleVersionRepository;Defined in: server/rules/rule-repositories.ts:55
Methods
appendConditionVersion()
appendConditionVersion(
conditionId: string,
input: Omit<ConditionVersionCreateInput, "conditionId" | "versionNumber">,
parentPatch?: Partial<{
currentVersionId: string | null;
description: string | null;
module: string | null;
name: string | null;
}>
): Promise<ConditionRecordWithVersion>;Defined in: server/rules/rule-repositories.ts:131
Parameters
| Parameter | Type |
|---|---|
conditionId | string |
input | Omit<ConditionVersionCreateInput, "conditionId" | "versionNumber"> |
parentPatch | Partial<{ currentVersionId: string | null; description: string | null; module: string | null; name: string | null; }> |
Returns
Promise<ConditionRecordWithVersion>
appendRuleVersion()
appendRuleVersion(
ruleId: string,
input: Omit<RuleVersionCreateInput, "ruleId" | "versionNumber">,
parentPatch?: Partial<{
currentVersionId: string | null;
description: string | null;
module: string | null;
name: string;
status: "active" | "inactive" | "archived";
statusUpdatedAt: Date;
statusUpdatedBy: string | null;
}>
): Promise<RuleRecordWithVersion>;Defined in: server/rules/rule-repositories.ts:89
Parameters
| Parameter | Type |
|---|---|
ruleId | string |
input | Omit<RuleVersionCreateInput, "ruleId" | "versionNumber"> |
parentPatch | Partial<{ currentVersionId: string | null; description: string | null; module: string | null; name: string; status: "active" | "inactive" | "archived"; statusUpdatedAt: Date; statusUpdatedBy: string | null; }> |
Returns
Promise<RuleRecordWithVersion>
appendRuleVersionCopy()
appendRuleVersionCopy(ruleId: string, overrides: RuleVersionCopyOverrides): Promise<RuleRecordWithVersion | null>;Defined in: server/rules/rule-repositories.ts:109
Append a copy of the current version with explicit field overrides.
Parameters
| Parameter | Type |
|---|---|
ruleId | string |
overrides | RuleVersionCopyOverrides |
Returns
Promise<RuleRecordWithVersion | null>
transaction()
transaction<T>(fn: (repos: RuleRepositories) => Promise<T>): Promise<T>;Defined in: server/rules/rule-repositories.ts:81
Type Parameters
| Type Parameter |
|---|
T |
Parameters
| Parameter | Type |
|---|---|
fn | (repos: RuleRepositories) => Promise<T> |
Returns
Promise<T>