@venizia/ignis-docs 0.2.0 → 0.2.1-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/README.md +14 -14
  2. package/content/best-practices/api-usage-examples.md +39 -19
  3. package/content/best-practices/architectural-patterns.md +24 -13
  4. package/content/best-practices/architecture-decisions.md +29 -16
  5. package/content/best-practices/code-style-standards/advanced-patterns.md +43 -31
  6. package/content/best-practices/code-style-standards/constants-configuration.md +19 -4
  7. package/content/best-practices/code-style-standards/control-flow.md +33 -1
  8. package/content/best-practices/code-style-standards/documentation.md +28 -8
  9. package/content/best-practices/code-style-standards/function-patterns.md +15 -4
  10. package/content/best-practices/code-style-standards/index.md +7 -2
  11. package/content/best-practices/code-style-standards/naming-conventions.md +27 -3
  12. package/content/best-practices/code-style-standards/route-definitions.md +9 -5
  13. package/content/best-practices/code-style-standards/tooling.md +14 -1
  14. package/content/best-practices/code-style-standards/type-safety.md +39 -6
  15. package/content/best-practices/common-pitfalls.md +59 -35
  16. package/content/best-practices/contribution-workflow.md +8 -4
  17. package/content/best-practices/data-modeling.md +78 -62
  18. package/content/best-practices/deployment-strategies.md +56 -19
  19. package/content/best-practices/error-handling.md +247 -153
  20. package/content/best-practices/index.md +6 -0
  21. package/content/best-practices/performance-optimization.md +26 -13
  22. package/content/best-practices/security-guidelines.md +35 -9
  23. package/content/best-practices/testing-strategies.md +7 -2
  24. package/content/best-practices/troubleshooting-tips.md +27 -17
  25. package/content/extensions/components/api-reference.md +109 -323
  26. package/content/extensions/components/authentication/api.md +489 -602
  27. package/content/extensions/components/authentication/errors.md +135 -498
  28. package/content/extensions/components/authentication/index.md +89 -801
  29. package/content/extensions/components/authentication/usage.md +231 -955
  30. package/content/extensions/components/authorization/api.md +991 -644
  31. package/content/extensions/components/authorization/errors.md +204 -208
  32. package/content/extensions/components/authorization/getting-started.md +227 -0
  33. package/content/extensions/components/authorization/index.md +88 -795
  34. package/content/extensions/components/authorization/usage.md +219 -528
  35. package/content/extensions/components/health-check.md +77 -243
  36. package/content/extensions/components/index.md +24 -90
  37. package/content/extensions/components/mail/api.md +553 -285
  38. package/content/extensions/components/mail/errors.md +76 -62
  39. package/content/extensions/components/mail/index.md +111 -463
  40. package/content/extensions/components/mail/usage.md +139 -173
  41. package/content/extensions/components/request-tracker.md +70 -173
  42. package/content/extensions/components/socket-io/api.md +462 -785
  43. package/content/extensions/components/socket-io/errors.md +49 -51
  44. package/content/extensions/components/socket-io/index.md +69 -372
  45. package/content/extensions/components/socket-io/usage.md +212 -105
  46. package/content/extensions/components/static-asset/api.md +461 -141
  47. package/content/extensions/components/static-asset/errors.md +121 -53
  48. package/content/extensions/components/static-asset/index.md +84 -606
  49. package/content/extensions/components/static-asset/usage.md +184 -299
  50. package/content/extensions/components/template/index.md +3 -3
  51. package/content/extensions/components/websocket/api.md +311 -404
  52. package/content/extensions/components/websocket/errors.md +47 -56
  53. package/content/extensions/components/websocket/index.md +75 -407
  54. package/content/extensions/components/websocket/usage.md +120 -338
  55. package/content/extensions/helpers/cron/index.md +52 -160
  56. package/content/extensions/helpers/crypto/index.md +67 -480
  57. package/content/extensions/helpers/crypto/reference.md +528 -0
  58. package/content/extensions/helpers/env/index.md +64 -178
  59. package/content/extensions/helpers/error/index.md +286 -196
  60. package/content/extensions/helpers/index.md +61 -47
  61. package/content/extensions/helpers/inversion/index.md +76 -550
  62. package/content/extensions/helpers/inversion/reference.md +530 -0
  63. package/content/extensions/helpers/kafka/admin.md +23 -3
  64. package/content/extensions/helpers/kafka/compile-binary.md +83 -52
  65. package/content/extensions/helpers/kafka/consumer.md +65 -28
  66. package/content/extensions/helpers/kafka/examples.md +46 -253
  67. package/content/extensions/helpers/kafka/index.md +55 -617
  68. package/content/extensions/helpers/kafka/producer.md +156 -22
  69. package/content/extensions/helpers/kafka/schema-registry.md +59 -79
  70. package/content/extensions/helpers/logger/hf-logger.md +220 -0
  71. package/content/extensions/helpers/logger/index.md +78 -552
  72. package/content/extensions/helpers/logger/pino.md +105 -0
  73. package/content/extensions/helpers/logger/reference.md +937 -0
  74. package/content/extensions/helpers/network/api.md +276 -195
  75. package/content/extensions/helpers/network/index.md +87 -524
  76. package/content/extensions/helpers/queue/index.md +80 -897
  77. package/content/extensions/helpers/queue/reference.md +494 -0
  78. package/content/extensions/helpers/redis/index.md +86 -640
  79. package/content/extensions/helpers/redis/reference.md +784 -0
  80. package/content/extensions/helpers/secrets/index.md +136 -0
  81. package/content/extensions/helpers/socket-io/api.md +325 -204
  82. package/content/extensions/helpers/socket-io/index.md +79 -429
  83. package/content/extensions/helpers/storage/api.md +584 -464
  84. package/content/extensions/helpers/storage/index.md +80 -573
  85. package/content/extensions/helpers/types/index.md +75 -495
  86. package/content/extensions/helpers/types/reference.md +689 -0
  87. package/content/extensions/helpers/uid/index.md +176 -189
  88. package/content/extensions/helpers/websocket/api.md +366 -214
  89. package/content/extensions/helpers/websocket/index.md +68 -503
  90. package/content/extensions/helpers/worker-thread/index.md +62 -396
  91. package/content/extensions/helpers/worker-thread/reference.md +428 -0
  92. package/content/extensions/index.md +38 -39
  93. package/content/extensions/src-details/mcp-server.md +96 -548
  94. package/content/guides/core-concepts/persistent/datasources.md +2 -2
  95. package/content/guides/core-concepts/persistent/index.md +5 -1
  96. package/content/guides/core-concepts/persistent/models.md +1 -1
  97. package/content/guides/core-concepts/persistent/pglite.md +218 -0
  98. package/content/guides/core-concepts/persistent/postgres-drivers.md +21 -15
  99. package/content/guides/core-concepts/persistent/search-meilisearch.md +22 -12
  100. package/content/guides/core-concepts/persistent/search-typesense.md +28 -16
  101. package/content/guides/core-concepts/persistent/sqlite.md +296 -0
  102. package/content/guides/core-concepts/persistent/transactions.md +12 -11
  103. package/content/guides/core-concepts/secrets-vault.md +177 -0
  104. package/content/guides/core-concepts/services.md +1 -1
  105. package/content/guides/get-started/5-minute-quickstart.md +59 -206
  106. package/content/guides/get-started/philosophy.md +135 -670
  107. package/content/guides/get-started/setup.md +53 -74
  108. package/content/guides/migrations/redis-helpers-migration.md +5 -4
  109. package/content/guides/migrations/scoped-rbac-migration.md +5 -5
  110. package/content/guides/migrations/unified-connectors-migration.md +8 -7
  111. package/content/guides/tutorials/ecommerce-api.md +3 -8
  112. package/content/guides/tutorials/realtime-chat.md +1 -1
  113. package/content/references/base/application.md +64 -22
  114. package/content/references/base/components.md +3 -3
  115. package/content/references/base/connectors.md +79 -136
  116. package/content/references/base/controllers.md +12 -12
  117. package/content/references/base/datasources-reference.md +600 -0
  118. package/content/references/base/datasources.md +84 -444
  119. package/content/references/base/dependency-injection.md +25 -46
  120. package/content/references/base/filter-system/application-usage.md +95 -123
  121. package/content/references/base/filter-system/array-operators.md +33 -43
  122. package/content/references/base/filter-system/comparison-operators.md +55 -63
  123. package/content/references/base/filter-system/default-filter.md +144 -350
  124. package/content/references/base/filter-system/fields-order-pagination.md +116 -148
  125. package/content/references/base/filter-system/index.md +114 -253
  126. package/content/references/base/filter-system/json-filtering.md +52 -181
  127. package/content/references/base/filter-system/list-operators.md +28 -44
  128. package/content/references/base/filter-system/logical-operators.md +69 -114
  129. package/content/references/base/filter-system/null-operators.md +41 -98
  130. package/content/references/base/filter-system/pattern-matching.md +48 -51
  131. package/content/references/base/filter-system/quick-reference.md +93 -196
  132. package/content/references/base/filter-system/range-operators.md +22 -38
  133. package/content/references/base/filter-system/tips.md +70 -133
  134. package/content/references/base/filter-system/use-cases.md +173 -232
  135. package/content/references/base/grpc-controllers.md +53 -17
  136. package/content/references/base/index.md +5 -3
  137. package/content/references/base/middlewares.md +43 -28
  138. package/content/references/base/models-reference.md +886 -0
  139. package/content/references/base/models.md +81 -1452
  140. package/content/references/base/providers.md +8 -8
  141. package/content/references/base/repositories/advanced.md +281 -419
  142. package/content/references/base/repositories/index.md +84 -644
  143. package/content/references/base/repositories/mixins.md +25 -21
  144. package/content/references/base/repositories/relations.md +194 -375
  145. package/content/references/base/repositories/soft-deletable.md +67 -55
  146. package/content/references/base/secrets.md +267 -0
  147. package/content/references/base/services.md +8 -6
  148. package/content/references/configuration/environment-variables.md +73 -21
  149. package/content/references/configuration/index.md +51 -31
  150. package/content/references/index.md +1 -1
  151. package/content/references/quick-reference.md +3 -16
  152. package/content/references/utilities/crypto.md +35 -76
  153. package/content/references/utilities/date.md +33 -73
  154. package/content/references/utilities/duration.md +85 -0
  155. package/content/references/utilities/index.md +6 -2
  156. package/content/references/utilities/jsx-reference.md +298 -0
  157. package/content/references/utilities/jsx.md +82 -525
  158. package/content/references/utilities/module.md +81 -61
  159. package/content/references/utilities/parse.md +34 -64
  160. package/content/references/utilities/performance.md +33 -58
  161. package/content/references/utilities/promise.md +28 -62
  162. package/content/references/utilities/request.md +58 -218
  163. package/content/references/utilities/retry.md +139 -0
  164. package/content/references/utilities/schema.md +43 -137
  165. package/content/references/utilities/statuses-reference.md +361 -0
  166. package/content/references/utilities/statuses.md +63 -667
  167. package/dist/mcp-server/index.js +0 -0
  168. package/dist/mcp-server/tools/github/list-project-files.tool.d.ts +1 -1
  169. package/dist/mcp-server/tools/github/list-project-files.tool.d.ts.map +1 -1
  170. package/dist/mcp-server/tools/github/list-project-files.tool.js +3 -3
  171. package/dist/mcp-server/tools/github/search-code.tool.js +1 -1
  172. package/dist/mcp-server/tools/github/verify-dependencies.tool.js +1 -1
  173. package/dist/mcp-server/tools/github/view-source-file.tool.js +1 -1
  174. package/package.json +24 -23
@@ -0,0 +1,361 @@
1
+ ---
2
+ title: Statuses - Full Reference
3
+ description: Complete reference for every status code, group set, specialized status class, and binding-namespace constant
4
+ difficulty: beginner
5
+ lastUpdated: 2026-07-16
6
+ ---
7
+
8
+ # Statuses - Full Reference
9
+
10
+ Exhaustive reference for `Statuses`, its specialized subclasses, and the `BindingNamespaces`/`CoreBindings` constant catalogs. For an introduction and the common tasks, start with the [Statuses overview](/references/utilities/statuses).
11
+
12
+ **Files:**
13
+
14
+ - [`packages/core-server/src/common/statuses.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core-server/src/common/statuses.ts)
15
+ - [`packages/core-server/src/common/bindings.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core-server/src/common/bindings.ts)
16
+
17
+ ## `Statuses`
18
+
19
+ A static class of `'NNN_NAME'` status code constants, grouped by an HTTP-inspired numeric prefix, plus `Set` groupings and validator methods.
20
+
21
+ `Source ->` [`packages/core-server/src/common/statuses.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core-server/src/common/statuses.ts)
22
+
23
+ ### Status code scheme
24
+
25
+ | Prefix | Category | Meaning | Reversibility |
26
+ |--------|----------|---------|----------------|
27
+ | `0xx` | Initial | Entity creation/draft state | N/A |
28
+ | `1xx` | Pending | Awaiting action or decision | Reversible |
29
+ | `2xx` | Active | In progress or running | Reversible |
30
+ | `3xx` | Completed | Positive terminal state | Terminal |
31
+ | `4xx` | Inactive | Negative but reversible | Reversible |
32
+ | `5xx` | Failed | Negative terminal state | Terminal |
33
+
34
+ ### `0xx` - Initial states
35
+
36
+ | Constant | Value | Description |
37
+ |----------|-------|-------------|
38
+ | `UNKNOWN` | `'000_UNKNOWN'` | Unknown or uninitialized state |
39
+ | `DRAFT` | `'001_DRAFT'` | Draft state, not yet finalized |
40
+
41
+ ### `1xx` - Pending/waiting states
42
+
43
+ | Constant | Value | Description |
44
+ |----------|-------|-------------|
45
+ | `NEW` | `'100_NEW'` | Newly created, not yet processed |
46
+ | `QUEUED` | `'101_QUEUED'` | Queued for processing |
47
+ | `SCHEDULED` | `'102_SCHEDULED'` | Scheduled for future execution |
48
+ | `PENDING` | `'103_PENDING'` | Awaiting action or decision |
49
+ | `IN_REVIEW` | `'104_IN_REVIEW'` | Under review or approval process |
50
+
51
+ ### `2xx` - Active/running states
52
+
53
+ | Constant | Value | Description |
54
+ |----------|-------|-------------|
55
+ | `ENABLED` | `'200_ENABLED'` | Feature or entity is enabled |
56
+ | `ACTIVATED` | `'201_ACTIVATED'` | Account or service is active |
57
+ | `RUNNING` | `'202_RUNNING'` | Process is currently running |
58
+ | `PROCESSING` | `'203_PROCESSING'` | Being actively processed |
59
+ | `SENT` | `'204_SENT'` | Message/item has been sent |
60
+ | `RECEIVED` | `'205_RECEIVED'` | Message/item has been received |
61
+
62
+ ### `3xx` - Completed states
63
+
64
+ Positive terminal states.
65
+
66
+ | Constant | Value | Description |
67
+ |----------|-------|-------------|
68
+ | `PARTIAL` | `'300_PARTIAL'` | Partially completed |
69
+ | `APPROVED` | `'301_APPROVED'` | Approved by reviewer |
70
+ | `SUCCESS` | `'302_SUCCESS'` | Successfully completed |
71
+ | `COMPLETED` | `'303_COMPLETED'` | Fully completed |
72
+ | `SETTLED` | `'304_SETTLED'` | Finalized or settled |
73
+ | `CONFIRMED` | `'305_CONFIRMED'` | Confirmed by user or system |
74
+
75
+ ### `4xx` - Inactive states
76
+
77
+ Negative but reversible - the entity can be reactivated.
78
+
79
+ | Constant | Value | Description |
80
+ |----------|-------|-------------|
81
+ | `DISABLED` | `'400_DISABLED'` | Feature or entity is disabled |
82
+ | `DEACTIVATED` | `'401_DEACTIVATED'` | Account or service is deactivated |
83
+ | `SUSPENDED` | `'402_SUSPENDED'` | Temporarily suspended |
84
+ | `BLOCKED` | `'403_BLOCKED'` | Access blocked (e.g. banned user) |
85
+ | `CLOSED` | `'404_CLOSED'` | Closed but can be reopened |
86
+ | `ARCHIVED` | `'405_ARCHIVED'` | Archived for record keeping |
87
+ | `PAUSED` | `'406_PAUSED'` | Paused, can be resumed |
88
+ | `REVOKED` | `'407_REVOKED'` | Permission or access revoked |
89
+ | `REFUNDED` | `'408_REFUNDED'` | Payment or transaction refunded |
90
+
91
+ ### `5xx` - Failed/error states
92
+
93
+ Negative terminal states - permanent failure or cancellation.
94
+
95
+ | Constant | Value | Description |
96
+ |----------|-------|-------------|
97
+ | `FAIL` | `'500_FAIL'` | General failure |
98
+ | `EXPIRED` | `'501_EXPIRED'` | Expired and no longer valid |
99
+ | `TIMEOUT` | `'502_TIMEOUT'` | Operation timed out |
100
+ | `SKIPPED` | `'503_SKIPPED'` | Intentionally skipped |
101
+ | `ABORTED` | `'504_ABORTED'` | Aborted by system |
102
+ | `CANCELLED` | `'505_CANCELLED'` | Cancelled by user/admin |
103
+ | `DELETED` | `'506_DELETED'` | Soft deleted |
104
+ | `REJECTED` | `'507_REJECTED'` | Rejected by reviewer |
105
+
106
+ ### Group sets
107
+
108
+ Each phase has a static `Set<string>` of its member statuses, plus `SCHEME_SET`, the union of all six.
109
+
110
+ | Set | Members |
111
+ |-----|---------|
112
+ | `INITIAL_SCHEME_SET` | `UNKNOWN`, `DRAFT` |
113
+ | `PENDING_SCHEME_SET` | `NEW`, `QUEUED`, `SCHEDULED`, `PENDING`, `IN_REVIEW` |
114
+ | `ACTIVE_SCHEME_SET` | `ENABLED`, `ACTIVATED`, `RUNNING`, `PROCESSING`, `SENT`, `RECEIVED` |
115
+ | `COMPLETED_SCHEME_SET` | `COMPLETED`, `SUCCESS`, `PARTIAL`, `SETTLED`, `APPROVED`, `CONFIRMED` |
116
+ | `INACTIVE_SCHEME_SET` | `DISABLED`, `DEACTIVATED`, `SUSPENDED`, `BLOCKED`, `CLOSED`, `ARCHIVED`, `PAUSED`, `REVOKED`, `REFUNDED` |
117
+ | `FAILED_SCHEME_SET` | `FAIL`, `EXPIRED`, `TIMEOUT`, `SKIPPED`, `ABORTED`, `CANCELLED`, `DELETED`, `REJECTED` |
118
+ | `SCHEME_SET` | All statuses across all six sets combined |
119
+
120
+ ```typescript
121
+ import { Statuses } from '@venizia/ignis';
122
+
123
+ // Membership check
124
+ Statuses.ACTIVE_SCHEME_SET.has(order.status);
125
+
126
+ // Spread into a query operator
127
+ await jobRepository.find({
128
+ filter: { where: { status: { inq: [...Statuses.FAILED_SCHEME_SET] } } },
129
+ });
130
+ ```
131
+
132
+ ### Validation methods
133
+
134
+ Each method checks membership in the matching `*_SCHEME_SET`; all take a `string` and return `boolean`.
135
+
136
+ | Method | Checks against |
137
+ |--------|-----------------|
138
+ | `isInitial(status)` | `INITIAL_SCHEME_SET` |
139
+ | `isPending(status)` | `PENDING_SCHEME_SET` |
140
+ | `isActive(status)` | `ACTIVE_SCHEME_SET` |
141
+ | `isCompleted(status)` | `COMPLETED_SCHEME_SET` |
142
+ | `isInactive(status)` | `INACTIVE_SCHEME_SET` |
143
+ | `isFailed(status)` | `FAILED_SCHEME_SET` |
144
+ | `isValid(status)` | `SCHEME_SET` (all statuses) |
145
+
146
+ ```typescript
147
+ export class Statuses {
148
+ static isInitial(status: string): boolean;
149
+ static isPending(status: string): boolean;
150
+ static isActive(status: string): boolean;
151
+ static isCompleted(status: string): boolean;
152
+ static isInactive(status: string): boolean;
153
+ static isFailed(status: string): boolean;
154
+ static isValid(status: string): boolean;
155
+ }
156
+ ```
157
+
158
+ ## Specialized status classes
159
+
160
+ Each specialized class references `Statuses` values directly - it does not define new status strings, only a named subset plus its own `SCHEME_SET` and `isValid()`.
161
+
162
+ ### `MigrationStatuses`
163
+
164
+ Database migration tracking.
165
+
166
+ ```typescript
167
+ export class MigrationStatuses {
168
+ static readonly UNKNOWN = Statuses.UNKNOWN; // '000_UNKNOWN'
169
+ static readonly SUCCESS = Statuses.SUCCESS; // '302_SUCCESS'
170
+ static readonly FAIL = Statuses.FAIL; // '500_FAIL'
171
+
172
+ static readonly SCHEME_SET = new Set([this.UNKNOWN, this.SUCCESS, this.FAIL]);
173
+
174
+ static isValid(scheme: string): boolean;
175
+ }
176
+ ```
177
+
178
+ ### `CommonStatuses`
179
+
180
+ Shared statuses reused across entity types.
181
+
182
+ ```typescript
183
+ export class CommonStatuses {
184
+ static readonly UNKNOWN = Statuses.UNKNOWN; // '000_UNKNOWN'
185
+ static readonly ACTIVATED = Statuses.ACTIVATED; // '201_ACTIVATED'
186
+ static readonly DEACTIVATED = Statuses.DEACTIVATED; // '401_DEACTIVATED'
187
+ static readonly BLOCKED = Statuses.BLOCKED; // '403_BLOCKED'
188
+ static readonly ARCHIVED = Statuses.ARCHIVED; // '405_ARCHIVED'
189
+
190
+ static readonly SCHEME_SET = new Set([
191
+ this.UNKNOWN,
192
+ this.ACTIVATED,
193
+ this.DEACTIVATED,
194
+ this.BLOCKED,
195
+ this.ARCHIVED,
196
+ ]);
197
+
198
+ static isValid(scheme: string): boolean;
199
+ }
200
+ ```
201
+
202
+ ### `UserStatuses` / `RoleStatuses`
203
+
204
+ Both classes `extend CommonStatuses` with an empty body - they add no members of their own, inheriting every constant, `SCHEME_SET`, and `isValid()` unchanged. They exist as distinct, named types for user- and role-domain statuses.
205
+
206
+ ```typescript
207
+ export class UserStatuses extends CommonStatuses {}
208
+ export class RoleStatuses extends CommonStatuses {}
209
+ ```
210
+
211
+ ### `UserTypes`
212
+
213
+ Not a status class - a separate classification of user origin. Unrelated to lifecycle phase.
214
+
215
+ ```typescript
216
+ export class UserTypes {
217
+ static readonly SYSTEM = 'SYSTEM'; // System-generated users
218
+ static readonly LINKED = 'LINKED'; // External auth (OAuth, SAML, etc.)
219
+
220
+ static readonly SCHEME_SET = new Set([this.SYSTEM, this.LINKED]);
221
+
222
+ static isValid(orgType: string): boolean;
223
+ }
224
+ ```
225
+
226
+ ## Binding namespaces
227
+
228
+ Organizes dependency-injection binding keys by artifact type. Distinct from `Statuses` - not a lifecycle catalog.
229
+
230
+ `Source ->` [`packages/core-server/src/common/bindings.ts`](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core-server/src/common/bindings.ts)
231
+
232
+ ### `BindingNamespaces`
233
+
234
+ ```typescript
235
+ export class BindingNamespaces {
236
+ static readonly COMPONENT = 'components';
237
+ static readonly DATASOURCE = 'datasources';
238
+ static readonly REPOSITORY = 'repositories';
239
+ static readonly MODEL = 'models';
240
+ static readonly SERVICE = 'services';
241
+ static readonly MIDDLEWARE = 'middlewares';
242
+ static readonly PROVIDER = 'providers';
243
+ static readonly CONTROLLER = 'controllers';
244
+ static readonly BOOTERS = 'booters';
245
+
246
+ static createNamespace(opts: { name: string }): string;
247
+ }
248
+ ```
249
+
250
+ Each namespace constant is itself built via `createNamespace()`; the method is also public for constructing custom namespace strings.
251
+
252
+ `TBindingNamespace` (`TConstValue<typeof BindingNamespaces>`) is the union type of all `BindingNamespaces` values, derived at compile time rather than hand-maintained.
253
+
254
+ ### `CoreBindings`
255
+
256
+ Application-level binding keys. Extends `BindingKeys` from `@venizia/ignis-inversion`.
257
+
258
+ ```typescript
259
+ export class CoreBindings extends BindingKeys {
260
+ static readonly APPLICATION_INSTANCE = '@app/instance';
261
+ static readonly APPLICATION_SERVER = '@app/server';
262
+ static readonly APPLICATION_CONFIG = '@app/config';
263
+ static readonly APPLICATION_PROJECT_ROOT = '@app/project_root';
264
+ static readonly APPLICATION_ROOT_ROUTER = '@app/router/root';
265
+ static readonly APPLICATION_ENVIRONMENTS = '@app/environments';
266
+ static readonly APPLICATION_MIDDLEWARE_OPTIONS = '@app/middleware_options';
267
+ }
268
+ ```
269
+
270
+ | Constant | Value | Description |
271
+ |----------|-------|-------------|
272
+ | `APPLICATION_INSTANCE` | `'@app/instance'` | The running application instance |
273
+ | `APPLICATION_SERVER` | `'@app/server'` | The underlying HTTP server |
274
+ | `APPLICATION_CONFIG` | `'@app/config'` | Resolved application configuration |
275
+ | `APPLICATION_PROJECT_ROOT` | `'@app/project_root'` | Absolute path to the project root |
276
+ | `APPLICATION_ROOT_ROUTER` | `'@app/router/root'` | The root Hono router |
277
+ | `APPLICATION_ENVIRONMENTS` | `'@app/environments'` | Loaded environment variables |
278
+ | `APPLICATION_MIDDLEWARE_OPTIONS` | `'@app/middleware_options'` | Global middleware configuration |
279
+
280
+ ```typescript
281
+ import { CoreBindings } from '@venizia/ignis';
282
+
283
+ const app = container.get(CoreBindings.APPLICATION_INSTANCE);
284
+ const config = container.get(CoreBindings.APPLICATION_CONFIG);
285
+ ```
286
+
287
+ ## Usage patterns
288
+
289
+ ### Entity lifecycle in a service
290
+
291
+ ```typescript
292
+ import { Statuses } from '@venizia/ignis';
293
+
294
+ class OrderService extends BaseService {
295
+ async createOrder(data: CreateOrderDto) {
296
+ return this.orderRepository.create({ data: { ...data, status: Statuses.NEW } });
297
+ }
298
+
299
+ async processOrder(orderId: string) {
300
+ await this.orderRepository.updateById({
301
+ id: orderId,
302
+ data: { status: Statuses.PROCESSING, startedAt: new Date() },
303
+ });
304
+
305
+ try {
306
+ await this.paymentService.charge(orderId);
307
+ await this.orderRepository.updateById({
308
+ id: orderId,
309
+ data: { status: Statuses.COMPLETED, completedAt: new Date() },
310
+ });
311
+ } catch (error) {
312
+ await this.orderRepository.updateById({
313
+ id: orderId,
314
+ data: { status: Statuses.FAIL, failedAt: new Date() },
315
+ });
316
+ throw error;
317
+ }
318
+ }
319
+
320
+ async cancelOrder(orderId: string) {
321
+ const order = await this.orderRepository.findById({ id: orderId });
322
+ if (Statuses.isCompleted(order.status) || Statuses.isFailed(order.status)) {
323
+ throw getError({ message: 'Cannot cancel a completed or failed order' });
324
+ }
325
+ await this.orderRepository.updateById({
326
+ id: orderId,
327
+ data: { status: Statuses.CANCELLED },
328
+ });
329
+ }
330
+ }
331
+ ```
332
+
333
+ ### Validating a status transition
334
+
335
+ ```typescript
336
+ import { Statuses } from '@venizia/ignis';
337
+
338
+ function validateStatusTransition(from: string, to: string) {
339
+ if (!Statuses.isValid(to)) {
340
+ throw getError({ message: `Invalid status: ${to}` });
341
+ }
342
+ if (Statuses.isCompleted(from) || Statuses.isFailed(from)) {
343
+ throw getError({ message: 'Cannot transition from a terminal state' });
344
+ }
345
+ return true;
346
+ }
347
+ ```
348
+
349
+ ## Best practices
350
+
351
+ - **Use the constants, not magic strings.** `Statuses.COMPLETED`, never `'303_COMPLETED'` - typos in a raw string pass type checking silently.
352
+ - **Validate before writing.** Call `Statuses.isValid()` on any status that originates outside the constant catalog (request body, external system) before persisting it.
353
+ - **Prefer the `is*` helpers over raw set checks.** `Statuses.isActive(x)` reads better than `Statuses.ACTIVE_SCHEME_SET.has(x)` at call sites, though both are equivalent.
354
+ - **Check terminal states before mutating.** `isCompleted()` and `isFailed()` both signal a terminal status - guard state-changing operations against both.
355
+
356
+ ## See also
357
+
358
+ - [Statuses overview](/references/utilities/statuses) - introduction and common tasks
359
+ - [Models](/references/base/models) - entity definitions using statuses
360
+ - [Repositories](/references/base/repositories/) - querying and updating by status
361
+ - [Filter System](/references/base/filter-system/) - `inq`/`nin` operators for `*_SCHEME_SET`