File tree Expand file tree Collapse file tree 6 files changed +130
-12
lines changed
content/docs/references/data/hook
packages/spec/json-schema/data Expand file tree Collapse file tree 6 files changed +130
-12
lines changed Original file line number Diff line number Diff line change @@ -10,9 +10,8 @@ description: Hook Schema Reference
1010| ** name** | ` string ` | ✅ | Hook unique name (snake_case) |
1111| ** label** | ` string ` | optional | Description of what this hook does |
1212| ** object** | ` string \| string[] ` | ✅ | Target object(s) |
13- | ** events** | ` Enum<'beforeFind' \| 'afterFind' \| 'beforeFindOne' \| 'afterFindOne' \| 'beforeCount' \| 'afterCount' \| 'beforeAggregate' \| 'afterAggregate' \| 'beforeInsert' \| 'afterInsert' \| 'beforeUpdate' \| 'afterUpdate' \| 'beforeDelete' \| 'afterDelete'>[] ` | ✅ | Lifecycle events |
14- | ** handler** | ` string ` | optional | Function handler name (e.g. "my_plugin.validate_account") |
15- | ** script** | ` string ` | optional | Inline script body |
13+ | ** events** | ` Enum<'beforeFind' \| 'afterFind' \| 'beforeFindOne' \| 'afterFindOne' \| 'beforeCount' \| 'afterCount' \| 'beforeAggregate' \| 'afterAggregate' \| 'beforeInsert' \| 'afterInsert' \| 'beforeUpdate' \| 'afterUpdate' \| 'beforeDelete' \| 'afterDelete' \| 'beforeUpdateMany' \| 'afterUpdateMany' \| 'beforeDeleteMany' \| 'afterDeleteMany'>[] ` | ✅ | Lifecycle events |
14+ | ** handler** | ` string \| any ` | optional | Function handler name or direct function |
1615| ** priority** | ` number ` | optional | Execution priority |
1716| ** async** | ` boolean ` | optional | Run specifically as fire-and-forget |
1817| ** onError** | ` Enum<'abort' \| 'log'> ` | optional | Error handling strategy |
Original file line number Diff line number Diff line change 1+ ---
2+ title : HookContext
3+ description : HookContext Schema Reference
4+ ---
5+
6+ ## Properties
7+
8+ | Property | Type | Required | Description |
9+ | :--- | :--- | :--- | :--- |
10+ | ** id** | ` string ` | optional | Unique execution ID for tracing |
11+ | ** object** | ` string ` | ✅ | |
12+ | ** event** | ` Enum<'beforeFind' \| 'afterFind' \| 'beforeFindOne' \| 'afterFindOne' \| 'beforeCount' \| 'afterCount' \| 'beforeAggregate' \| 'afterAggregate' \| 'beforeInsert' \| 'afterInsert' \| 'beforeUpdate' \| 'afterUpdate' \| 'beforeDelete' \| 'afterDelete' \| 'beforeUpdateMany' \| 'afterUpdateMany' \| 'beforeDeleteMany' \| 'afterDeleteMany'> ` | ✅ | |
13+ | ** input** | ` Record<string, any> ` | ✅ | Mutable input parameters |
14+ | ** result** | ` any ` | optional | Operation result (After hooks only) |
15+ | ** previous** | ` Record<string, any> ` | optional | Record state before operation |
16+ | ** session** | ` object ` | optional | Current session context |
17+ | ** transaction** | ` any ` | optional | Database transaction handle |
18+ | ** ql** | ` any ` | optional | ObjectQL Engine Reference |
Original file line number Diff line number Diff line change @@ -18,4 +18,8 @@ description: HookEvent Schema Reference
1818* ` beforeUpdate `
1919* ` afterUpdate `
2020* ` beforeDelete `
21- * ` afterDelete `
21+ * ` afterDelete `
22+ * ` beforeUpdateMany `
23+ * ` afterUpdateMany `
24+ * ` beforeDeleteMany `
25+ * ` afterDeleteMany `
Original file line number Diff line number Diff line change 4545 " beforeUpdate" ,
4646 " afterUpdate" ,
4747 " beforeDelete" ,
48- " afterDelete"
48+ " afterDelete" ,
49+ " beforeUpdateMany" ,
50+ " afterUpdateMany" ,
51+ " beforeDeleteMany" ,
52+ " afterDeleteMany"
4953 ]
5054 },
5155 "description" : " Lifecycle events"
5256 },
5357 "handler" : {
54- "type" : " string" ,
55- "description" : " Function handler name (e.g. \" my_plugin.validate_account\" )"
56- },
57- "script" : {
58- "type" : " string" ,
59- "description" : " Inline script body"
58+ "anyOf" : [
59+ {
60+ "type" : " string"
61+ },
62+ {}
63+ ],
64+ "description" : " Function handler name or direct function"
6065 },
6166 "priority" : {
6267 "type" : " number" ,
Original file line number Diff line number Diff line change 1+ {
2+ "$ref" : " #/definitions/HookContext" ,
3+ "definitions" : {
4+ "HookContext" : {
5+ "type" : " object" ,
6+ "properties" : {
7+ "id" : {
8+ "type" : " string" ,
9+ "description" : " Unique execution ID for tracing"
10+ },
11+ "object" : {
12+ "type" : " string"
13+ },
14+ "event" : {
15+ "type" : " string" ,
16+ "enum" : [
17+ " beforeFind" ,
18+ " afterFind" ,
19+ " beforeFindOne" ,
20+ " afterFindOne" ,
21+ " beforeCount" ,
22+ " afterCount" ,
23+ " beforeAggregate" ,
24+ " afterAggregate" ,
25+ " beforeInsert" ,
26+ " afterInsert" ,
27+ " beforeUpdate" ,
28+ " afterUpdate" ,
29+ " beforeDelete" ,
30+ " afterDelete" ,
31+ " beforeUpdateMany" ,
32+ " afterUpdateMany" ,
33+ " beforeDeleteMany" ,
34+ " afterDeleteMany"
35+ ]
36+ },
37+ "input" : {
38+ "type" : " object" ,
39+ "additionalProperties" : {},
40+ "description" : " Mutable input parameters"
41+ },
42+ "result" : {
43+ "description" : " Operation result (After hooks only)"
44+ },
45+ "previous" : {
46+ "type" : " object" ,
47+ "additionalProperties" : {},
48+ "description" : " Record state before operation"
49+ },
50+ "session" : {
51+ "type" : " object" ,
52+ "properties" : {
53+ "userId" : {
54+ "type" : " string"
55+ },
56+ "tenantId" : {
57+ "type" : " string"
58+ },
59+ "roles" : {
60+ "type" : " array" ,
61+ "items" : {
62+ "type" : " string"
63+ }
64+ },
65+ "accessToken" : {
66+ "type" : " string"
67+ }
68+ },
69+ "additionalProperties" : false ,
70+ "description" : " Current session context"
71+ },
72+ "transaction" : {
73+ "description" : " Database transaction handle"
74+ },
75+ "ql" : {
76+ "description" : " ObjectQL Engine Reference"
77+ }
78+ },
79+ "required" : [
80+ " object" ,
81+ " event" ,
82+ " input"
83+ ],
84+ "additionalProperties" : false
85+ }
86+ },
87+ "$schema" : " http://json-schema.org/draft-07/schema#"
88+ }
Original file line number Diff line number Diff line change 1717 " beforeUpdate" ,
1818 " afterUpdate" ,
1919 " beforeDelete" ,
20- " afterDelete"
20+ " afterDelete" ,
21+ " beforeUpdateMany" ,
22+ " afterUpdateMany" ,
23+ " beforeDeleteMany" ,
24+ " afterDeleteMany"
2125 ]
2226 }
2327 },
You can’t perform that action at this time.
0 commit comments