@venizia/ignis-docs 0.0.6-2 → 0.0.6-3

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 (57) hide show
  1. package/dist/mcp-server/index.js +1 -0
  2. package/dist/mcp-server/index.js.map +1 -1
  3. package/dist/mcp-server/tools/base.tool.d.ts +4 -8
  4. package/dist/mcp-server/tools/base.tool.d.ts.map +1 -1
  5. package/dist/mcp-server/tools/base.tool.js +1 -1
  6. package/dist/mcp-server/tools/base.tool.js.map +1 -1
  7. package/dist/mcp-server/tools/docs/get-document-content.tool.d.ts +8 -2
  8. package/dist/mcp-server/tools/docs/get-document-content.tool.d.ts.map +1 -1
  9. package/dist/mcp-server/tools/docs/get-document-content.tool.js +1 -1
  10. package/dist/mcp-server/tools/docs/get-document-content.tool.js.map +1 -1
  11. package/dist/mcp-server/tools/docs/get-document-metadata.tool.d.ts +13 -2
  12. package/dist/mcp-server/tools/docs/get-document-metadata.tool.d.ts.map +1 -1
  13. package/dist/mcp-server/tools/docs/get-document-metadata.tool.js +1 -1
  14. package/dist/mcp-server/tools/docs/get-document-metadata.tool.js.map +1 -1
  15. package/dist/mcp-server/tools/docs/get-package-overview.tool.d.ts +16 -2
  16. package/dist/mcp-server/tools/docs/get-package-overview.tool.d.ts.map +1 -1
  17. package/dist/mcp-server/tools/docs/get-package-overview.tool.js +1 -1
  18. package/dist/mcp-server/tools/docs/get-package-overview.tool.js.map +1 -1
  19. package/dist/mcp-server/tools/docs/list-categories.tool.d.ts +5 -2
  20. package/dist/mcp-server/tools/docs/list-categories.tool.d.ts.map +1 -1
  21. package/dist/mcp-server/tools/docs/list-categories.tool.js +1 -1
  22. package/dist/mcp-server/tools/docs/list-categories.tool.js.map +1 -1
  23. package/dist/mcp-server/tools/docs/list-documents.tool.d.ts +11 -2
  24. package/dist/mcp-server/tools/docs/list-documents.tool.d.ts.map +1 -1
  25. package/dist/mcp-server/tools/docs/list-documents.tool.js +1 -1
  26. package/dist/mcp-server/tools/docs/list-documents.tool.js.map +1 -1
  27. package/dist/mcp-server/tools/docs/search-documents.tool.d.ts +13 -2
  28. package/dist/mcp-server/tools/docs/search-documents.tool.d.ts.map +1 -1
  29. package/dist/mcp-server/tools/docs/search-documents.tool.js +1 -1
  30. package/dist/mcp-server/tools/docs/search-documents.tool.js.map +1 -1
  31. package/dist/mcp-server/tools/github/list-project-files.tool.d.ts +9 -2
  32. package/dist/mcp-server/tools/github/list-project-files.tool.d.ts.map +1 -1
  33. package/dist/mcp-server/tools/github/list-project-files.tool.js +1 -1
  34. package/dist/mcp-server/tools/github/list-project-files.tool.js.map +1 -1
  35. package/dist/mcp-server/tools/github/search-code.tool.d.ts +16 -2
  36. package/dist/mcp-server/tools/github/search-code.tool.d.ts.map +1 -1
  37. package/dist/mcp-server/tools/github/search-code.tool.js +1 -1
  38. package/dist/mcp-server/tools/github/search-code.tool.js.map +1 -1
  39. package/dist/mcp-server/tools/github/verify-dependencies.tool.d.ts +19 -2
  40. package/dist/mcp-server/tools/github/verify-dependencies.tool.d.ts.map +1 -1
  41. package/dist/mcp-server/tools/github/verify-dependencies.tool.js +1 -1
  42. package/dist/mcp-server/tools/github/verify-dependencies.tool.js.map +1 -1
  43. package/dist/mcp-server/tools/github/view-source-file.tool.d.ts +8 -2
  44. package/dist/mcp-server/tools/github/view-source-file.tool.d.ts.map +1 -1
  45. package/dist/mcp-server/tools/github/view-source-file.tool.js +1 -1
  46. package/dist/mcp-server/tools/github/view-source-file.tool.js.map +1 -1
  47. package/package.json +68 -54
  48. package/wiki/guides/reference/mcp-docs-server.md +0 -134
  49. package/wiki/references/base/controllers.md +11 -8
  50. package/wiki/references/components/authentication/usage.md +3 -3
  51. package/wiki/references/components/authorization/api.md +1213 -0
  52. package/wiki/references/components/authorization/errors.md +387 -0
  53. package/wiki/references/components/authorization/index.md +712 -0
  54. package/wiki/references/components/authorization/usage.md +696 -0
  55. package/wiki/references/components/index.md +2 -0
  56. package/wiki/references/helpers/index.md +1 -0
  57. package/wiki/references/helpers/kafka/index.md +305 -0
@@ -14,6 +14,7 @@ Reusable classes and functions providing common functionality - designed for eas
14
14
  | [Inversion](./inversion/) | Dependency injection | DI container implementation |
15
15
  | [Logger](./logger/) | Logging | Winston-based, multiple transports, scopes |
16
16
  | [Network](./network/) | Network requests | HTTP, TCP, UDP helpers |
17
+ | Kafka <Badge type="warning" text="Experimental" /> | Event streaming | Apache Kafka producer/consumer |
17
18
  | [Queue](./queue/) | Message queues | BullMQ, MQTT support |
18
19
  | [Redis](./redis/) | Redis operations | Single/cluster, key-value, hashes, JSON, pub/sub |
19
20
  | [Socket.IO](./socket-io/) | Real-time communication | Socket.IO client/server helpers |
@@ -0,0 +1,305 @@
1
+ # Kafka <Badge type="warning" text="Experimental" />
2
+
3
+ Apache Kafka event streaming with producer, consumer, and admin helpers. Built on [`@platformatic/kafka`](https://github.com/platformatic/kafka).
4
+
5
+ > [!WARNING]
6
+ > This helper is **experimental**. The API may change in future releases.
7
+
8
+ ## Quick Reference
9
+
10
+ | Class | Extends | Peer Dependency | Use Case |
11
+ |-------|---------|-----------------|----------|
12
+ | **KafkaProducerHelper** | `BaseHelper` | `@platformatic/kafka` | Publish messages to Kafka topics |
13
+ | **KafkaConsumerHelper** | `BaseHelper` | `@platformatic/kafka` | Consume messages from Kafka topics with consumer groups |
14
+ | **KafkaAdminHelper** | `BaseHelper` | `@platformatic/kafka` | Manage topics, partitions, consumer groups, and configs |
15
+
16
+ ### Import Path
17
+
18
+ ```typescript
19
+ import {
20
+ KafkaProducerHelper,
21
+ KafkaConsumerHelper,
22
+ KafkaAdminHelper,
23
+ KafkaDefaults,
24
+ KafkaAcks,
25
+ KafkaConfigResourceTypes,
26
+ } from '@venizia/ignis-helpers/kafka';
27
+
28
+ import type {
29
+ IKafkaConnectionOptions,
30
+ IKafkaProducerOptions,
31
+ IKafkaConsumerOptions,
32
+ IKafkaAdminOptions,
33
+ IKafkaProduceMessage,
34
+ IKafkaSendOptions,
35
+ IKafkaConsumedMessage,
36
+ IKafkaCommitOptions,
37
+ } from '@venizia/ignis-helpers/kafka';
38
+ ```
39
+
40
+ ## Installation
41
+
42
+ ```bash
43
+ bun add @platformatic/kafka
44
+ ```
45
+
46
+ ## Producer
47
+
48
+ The `KafkaProducerHelper` wraps `@platformatic/kafka`'s `Producer` for publishing messages to Kafka topics.
49
+
50
+ ```typescript
51
+ import { KafkaProducerHelper, KafkaAcks } from '@venizia/ignis-helpers/kafka';
52
+
53
+ const producer = new KafkaProducerHelper({
54
+ identifier: 'order-producer',
55
+ bootstrapBrokers: ['localhost:9092'],
56
+ acks: KafkaAcks.ALL,
57
+ autocreateTopics: true,
58
+ onConnected: () => console.log('Producer connected'),
59
+ onError: ({ error }) => console.error('Producer error:', error),
60
+ });
61
+
62
+ // Send messages
63
+ await producer.send({
64
+ messages: [
65
+ { topic: 'orders', key: 'order-123', value: JSON.stringify({ status: 'created' }) },
66
+ ],
67
+ });
68
+
69
+ // Send batch across multiple topics
70
+ await producer.sendBatch({
71
+ topicMessages: [
72
+ { topic: 'orders', messages: [{ key: 'o1', value: '...' }] },
73
+ { topic: 'notifications', messages: [{ key: 'n1', value: '...' }] },
74
+ ],
75
+ });
76
+
77
+ // Graceful shutdown
78
+ await producer.close();
79
+ ```
80
+
81
+ ### IKafkaProducerOptions
82
+
83
+ | Option | Type | Default | Description |
84
+ |--------|------|---------|-------------|
85
+ | `bootstrapBrokers` | `string[]` | -- | Kafka broker addresses (required) |
86
+ | `identifier` | `string` | -- | Scoped logging identifier |
87
+ | `clientId` | `string` | `'ignis-kafka'` | Kafka client ID |
88
+ | `acks` | `number` | -- | Acknowledgment level (`KafkaAcks.NONE`, `LEADER`, `ALL`) |
89
+ | `autocreateTopics` | `boolean` | -- | Auto-create topics on first produce |
90
+ | `timeout` | `number` | -- | Connection timeout in ms |
91
+ | `retries` | `number \| boolean` | -- | Retry configuration |
92
+ | `retryDelay` | `number` | -- | Delay between retries in ms |
93
+ | `serializers` | `Partial<Serializers>` | -- | Custom key/value/header serializers |
94
+ | `onConnected` | `() => void` | -- | Broker connect callback |
95
+ | `onDisconnected` | `() => void` | -- | Broker disconnect callback |
96
+ | `onError` | `(opts: { error: Error }) => void` | -- | Error callback |
97
+
98
+ ### Producer API
99
+
100
+ | Method | Returns | Description |
101
+ |--------|---------|-------------|
102
+ | `send(opts)` | `Promise<void>` | Send messages. `opts: { messages: IKafkaProduceMessage[]; acks? }` |
103
+ | `sendBatch(opts)` | `Promise<void>` | Send to multiple topics. `opts: { topicMessages: Array<{ topic; messages }> }` |
104
+ | `getProducer()` | `Producer` | Access the underlying `@platformatic/kafka` Producer |
105
+ | `close()` | `Promise<void>` | Gracefully close the producer connection |
106
+ | `static newInstance(opts)` | `KafkaProducerHelper` | Factory method |
107
+
108
+ ## Consumer
109
+
110
+ The `KafkaConsumerHelper` provides a stream-based consumer with consumer group support, pause/resume, manual commit, and lag monitoring.
111
+
112
+ ```typescript
113
+ import { KafkaConsumerHelper } from '@venizia/ignis-helpers/kafka';
114
+
115
+ const consumer = new KafkaConsumerHelper({
116
+ identifier: 'order-consumer',
117
+ bootstrapBrokers: ['localhost:9092'],
118
+ groupId: 'order-processing-group',
119
+ topics: ['orders'],
120
+ mode: 'latest',
121
+ autocommit: true,
122
+ onMessage: async ({ message }) => {
123
+ console.log(`Topic: ${message.topic}, Partition: ${message.partition}`);
124
+ console.log(`Key: ${message.key}, Value: ${message.value}`);
125
+ },
126
+ onConnected: () => console.log('Consumer connected'),
127
+ onGroupJoin: ({ groupId, memberId }) => {
128
+ console.log(`Joined group ${groupId} as ${memberId}`);
129
+ },
130
+ onError: ({ error }) => console.error('Consumer error:', error),
131
+ });
132
+
133
+ // Start consuming
134
+ await consumer.start();
135
+
136
+ // Pause/resume
137
+ consumer.pause();
138
+ consumer.resume();
139
+
140
+ // Graceful shutdown
141
+ await consumer.close();
142
+ ```
143
+
144
+ ### IKafkaConsumerOptions
145
+
146
+ | Option | Type | Default | Description |
147
+ |--------|------|---------|-------------|
148
+ | `bootstrapBrokers` | `string[]` | -- | Kafka broker addresses (required) |
149
+ | `groupId` | `string` | -- | Consumer group ID (required) |
150
+ | `topics` | `string[]` | -- | Topics to consume (required) |
151
+ | `identifier` | `string` | -- | Scoped logging identifier |
152
+ | `clientId` | `string` | `'ignis-kafka'` | Kafka client ID |
153
+ | `mode` | `'latest' \| 'earliest' \| 'committed'` | `'latest'` | Offset reset strategy |
154
+ | `autocommit` | `boolean \| number` | `true` | Auto-commit offsets (or interval in ms) |
155
+ | `sessionTimeout` | `number` | `30000` | Session timeout in ms |
156
+ | `heartbeatInterval` | `number` | `3000` | Heartbeat interval in ms |
157
+ | `highWaterMark` | `number` | `1024` | Stream high water mark |
158
+ | `maxWaitTime` | `number` | `5000` | Max wait time for fetch in ms |
159
+ | `deserializers` | `Partial<Deserializers>` | -- | Custom key/value/header deserializers |
160
+ | `onMessage` | `(opts: { message }) => ValueOrPromise<void>` | -- | Message handler |
161
+ | `onConnected` | `() => void` | -- | Broker connect callback |
162
+ | `onDisconnected` | `() => void` | -- | Broker disconnect callback |
163
+ | `onGroupJoin` | `(opts: { groupId; memberId }) => void` | -- | Consumer group join callback |
164
+ | `onGroupLeave` | `() => void` | -- | Consumer group leave callback |
165
+ | `onRebalance` | `() => void` | -- | Group rebalance callback |
166
+ | `onLag` | `(opts: { offsets }) => void` | -- | Consumer lag callback |
167
+ | `onError` | `(opts: { error: Error }) => void` | -- | Error callback |
168
+
169
+ ### Consumer API
170
+
171
+ | Method | Returns | Description |
172
+ |--------|---------|-------------|
173
+ | `start()` | `Promise<void>` | Start consuming messages (fires async consume loop) |
174
+ | `pause()` | `void` | Pause the message stream |
175
+ | `resume()` | `void` | Resume the message stream |
176
+ | `isPaused()` | `boolean` | Check if the stream is paused |
177
+ | `isConsuming()` | `boolean` | Check if the consumer is running |
178
+ | `commit(opts)` | `Promise<void>` | Manually commit offsets |
179
+ | `startLagMonitoring(opts)` | `void` | Start lag monitoring. `opts: { interval: number }` |
180
+ | `stopLagMonitoring()` | `void` | Stop lag monitoring |
181
+ | `getConsumer()` | `Consumer` | Access the underlying `@platformatic/kafka` Consumer |
182
+ | `close()` | `Promise<void>` | Abort consume loop, close stream and consumer |
183
+ | `static newInstance(opts)` | `KafkaConsumerHelper` | Factory method |
184
+
185
+ ### Manual Commit
186
+
187
+ When `autocommit` is `false`, commit offsets explicitly:
188
+
189
+ ```typescript
190
+ const consumer = new KafkaConsumerHelper({
191
+ // ...
192
+ autocommit: false,
193
+ onMessage: async ({ message }) => {
194
+ await processMessage(message);
195
+ // Commit after successful processing
196
+ await consumer.commit({
197
+ offsets: [{
198
+ topic: message.topic,
199
+ partition: message.partition,
200
+ offset: message.offset,
201
+ leaderEpoch: 0,
202
+ }],
203
+ });
204
+ },
205
+ });
206
+ ```
207
+
208
+ ## Admin
209
+
210
+ The `KafkaAdminHelper` provides topic, partition, consumer group, and config management.
211
+
212
+ ```typescript
213
+ import { KafkaAdminHelper, KafkaConfigResourceTypes } from '@venizia/ignis-helpers/kafka';
214
+
215
+ const admin = new KafkaAdminHelper({
216
+ identifier: 'kafka-admin',
217
+ bootstrapBrokers: ['localhost:9092'],
218
+ });
219
+
220
+ // Topic management
221
+ await admin.createTopics({ topics: ['orders', 'notifications'], partitions: 3, replicas: 1 });
222
+ const topics = await admin.listTopics();
223
+ await admin.deleteTopics({ topics: ['old-topic'] });
224
+
225
+ // Partition management
226
+ await admin.createPartitions({ topics: [{ name: 'orders', count: 6 }] });
227
+
228
+ // Consumer group management
229
+ const groups = await admin.listGroups();
230
+ const groupDetails = await admin.describeGroups({ groups: ['order-processing-group'] });
231
+ await admin.deleteGroups({ groups: ['stale-group'] });
232
+
233
+ // Config management
234
+ const configs = await admin.describeConfigs({
235
+ resources: [{
236
+ resourceType: KafkaConfigResourceTypes.TOPIC,
237
+ resourceName: 'orders',
238
+ }],
239
+ });
240
+
241
+ // Metadata
242
+ const meta = await admin.metadata({ topics: ['orders'] });
243
+
244
+ // Cleanup
245
+ await admin.close();
246
+ ```
247
+
248
+ ### Admin API
249
+
250
+ | Method | Returns | Description |
251
+ |--------|---------|-------------|
252
+ | `createTopics(opts)` | `Promise<any>` | Create topics with partitions and replicas |
253
+ | `deleteTopics(opts)` | `Promise<void>` | Delete topics |
254
+ | `listTopics(opts?)` | `Promise<string[]>` | List topics (optionally include internals) |
255
+ | `metadata(opts?)` | `Promise<any>` | Fetch cluster/topic metadata |
256
+ | `listGroups(opts?)` | `Promise<any>` | List consumer groups (filter by state) |
257
+ | `describeGroups(opts)` | `Promise<any>` | Describe consumer groups |
258
+ | `deleteGroups(opts)` | `Promise<void>` | Delete consumer groups |
259
+ | `listConsumerGroupOffsets(opts)` | `Promise<any>` | List offsets for consumer groups |
260
+ | `alterConsumerGroupOffsets(opts)` | `Promise<void>` | Alter consumer group offsets |
261
+ | `createPartitions(opts)` | `Promise<void>` | Create partitions for topics |
262
+ | `describeConfigs(opts)` | `Promise<any>` | Describe resource configs |
263
+ | `alterConfigs(opts)` | `Promise<void>` | Alter resource configs |
264
+ | `getAdmin()` | `Admin` | Access the underlying `@platformatic/kafka` Admin |
265
+ | `close()` | `Promise<void>` | Close the admin connection |
266
+ | `static newInstance(opts)` | `KafkaAdminHelper` | Factory method |
267
+
268
+ ## Constants
269
+
270
+ ### KafkaDefaults
271
+
272
+ | Constant | Value | Description |
273
+ |----------|-------|-------------|
274
+ | `CLIENT_ID` | `'ignis-kafka'` | Default Kafka client ID |
275
+ | `SESSION_TIMEOUT` | `30000` | Session timeout (ms) |
276
+ | `HEARTBEAT_INTERVAL` | `3000` | Heartbeat interval (ms) |
277
+ | `MAX_WAIT_TIME` | `5000` | Max fetch wait time (ms) |
278
+ | `HIGH_WATER_MARK` | `1024` | Stream high water mark |
279
+ | `AUTOCOMMIT_INTERVAL` | `100` | Auto-commit interval (ms) |
280
+
281
+ ### KafkaAcks
282
+
283
+ | Constant | Value | Description |
284
+ |----------|-------|-------------|
285
+ | `NONE` | `0` | No acknowledgment |
286
+ | `LEADER` | `1` | Leader acknowledgment only |
287
+ | `ALL` | `-1` | All replicas must acknowledge |
288
+
289
+ ### KafkaConfigResourceTypes
290
+
291
+ | Constant | Value | Description |
292
+ |----------|-------|-------------|
293
+ | `UNKNOWN` | `0` | Unknown resource type |
294
+ | `TOPIC` | `2` | Topic resource |
295
+ | `BROKER` | `4` | Broker resource |
296
+ | `BROKER_LOGGER` | `8` | Broker logger resource |
297
+
298
+ ## See Also
299
+
300
+ - **Other Helpers:**
301
+ - [Queue Helper](../queue/) -- BullMQ, MQTT, and in-memory queues
302
+ - [Redis Helper](../redis/) -- Redis connection management
303
+
304
+ - **External Resources:**
305
+ - [@platformatic/kafka](https://github.com/platformatic/kafka) -- Underlying Kafka client library