@ironbackend/core 1.0.0
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.
- package/LICENSE +21 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +123 -0
- package/dist/index.js.map +1 -0
- package/dist/rules/index.d.ts +36 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +505 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/security/index.d.ts +15 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +243 -0
- package/dist/security/index.js.map +1 -0
- package/dist/stacks/index.d.ts +38 -0
- package/dist/stacks/index.d.ts.map +1 -0
- package/dist/stacks/index.js +193 -0
- package/dist/stacks/index.js.map +1 -0
- package/dist/styles/clean-monolith.d.ts +7 -0
- package/dist/styles/clean-monolith.d.ts.map +1 -0
- package/dist/styles/clean-monolith.js +124 -0
- package/dist/styles/clean-monolith.js.map +1 -0
- package/dist/styles/event-driven.d.ts +12 -0
- package/dist/styles/event-driven.d.ts.map +1 -0
- package/dist/styles/event-driven.js +247 -0
- package/dist/styles/event-driven.js.map +1 -0
- package/dist/styles/hexagonal.d.ts +7 -0
- package/dist/styles/hexagonal.d.ts.map +1 -0
- package/dist/styles/hexagonal.js +146 -0
- package/dist/styles/hexagonal.js.map +1 -0
- package/dist/styles/index.d.ts +33 -0
- package/dist/styles/index.d.ts.map +1 -0
- package/dist/styles/index.js +75 -0
- package/dist/styles/index.js.map +1 -0
- package/dist/styles/microservices.d.ts +12 -0
- package/dist/styles/microservices.d.ts.map +1 -0
- package/dist/styles/microservices.js +218 -0
- package/dist/styles/microservices.js.map +1 -0
- package/dist/styles/modular-monolith.d.ts +7 -0
- package/dist/styles/modular-monolith.d.ts.map +1 -0
- package/dist/styles/modular-monolith.js +131 -0
- package/dist/styles/modular-monolith.js.map +1 -0
- package/dist/styles/specialized.d.ts +17 -0
- package/dist/styles/specialized.d.ts.map +1 -0
- package/dist/styles/specialized.js +379 -0
- package/dist/styles/specialized.js.map +1 -0
- package/dist/types.d.ts +143 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.automation = exports.readHeavy = exports.serverless = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Serverless Backend Architecture
|
|
6
|
+
* Stateless functions triggered by events, managed infrastructure
|
|
7
|
+
*/
|
|
8
|
+
exports.serverless = {
|
|
9
|
+
id: 'serverless',
|
|
10
|
+
name: 'Serverless Backend',
|
|
11
|
+
description: 'Backend composed of stateless functions triggered by events. Infrastructure managed by cloud provider. Pay-per-use with automatic scaling.',
|
|
12
|
+
whenToUse: [
|
|
13
|
+
'Variable/unpredictable traffic patterns',
|
|
14
|
+
'Event-driven workloads (webhooks, file processing)',
|
|
15
|
+
'Minimal operational overhead desired',
|
|
16
|
+
'Pay-per-use cost model preferred',
|
|
17
|
+
'Rapid development with managed infrastructure',
|
|
18
|
+
'Prototype or MVP development'
|
|
19
|
+
],
|
|
20
|
+
whenNotToUse: [
|
|
21
|
+
'Long-running processes (> 15 min)',
|
|
22
|
+
'Low latency critical (cold start issues)',
|
|
23
|
+
'High-frequency invocations (cost prohibitive)',
|
|
24
|
+
'Complex stateful workflows',
|
|
25
|
+
'Need full control over infrastructure',
|
|
26
|
+
'Vendor lock-in unacceptable'
|
|
27
|
+
],
|
|
28
|
+
corePrinciples: [
|
|
29
|
+
'Functions are stateless',
|
|
30
|
+
'State stored in external managed services',
|
|
31
|
+
'Each function does one thing well',
|
|
32
|
+
'Cold start mitigation strategies required',
|
|
33
|
+
'Design for idempotency',
|
|
34
|
+
'Optimize for invocation cost and duration'
|
|
35
|
+
],
|
|
36
|
+
folderStructure: {
|
|
37
|
+
name: 'src',
|
|
38
|
+
type: 'folder',
|
|
39
|
+
children: [
|
|
40
|
+
{
|
|
41
|
+
name: 'functions',
|
|
42
|
+
type: 'folder',
|
|
43
|
+
children: [
|
|
44
|
+
{
|
|
45
|
+
name: 'http',
|
|
46
|
+
type: 'folder',
|
|
47
|
+
description: 'API Gateway triggers',
|
|
48
|
+
children: [
|
|
49
|
+
{
|
|
50
|
+
name: 'create-order',
|
|
51
|
+
type: 'folder',
|
|
52
|
+
children: [
|
|
53
|
+
{ name: 'handler.ts', type: 'file', description: 'Function entry point' },
|
|
54
|
+
{ name: 'schema.ts', type: 'file', description: 'Input validation' },
|
|
55
|
+
{ name: 'index.ts', type: 'file', description: 'Export' }
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
{ name: 'get-orders', type: 'folder' }
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'events',
|
|
63
|
+
type: 'folder',
|
|
64
|
+
description: 'Event triggers (S3, SQS, SNS)',
|
|
65
|
+
children: [
|
|
66
|
+
{ name: 'process-upload', type: 'folder' },
|
|
67
|
+
{ name: 'handle-payment', type: 'folder' }
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: 'scheduled',
|
|
72
|
+
type: 'folder',
|
|
73
|
+
description: 'Cron triggers',
|
|
74
|
+
children: [
|
|
75
|
+
{ name: 'daily-report', type: 'folder' },
|
|
76
|
+
{ name: 'cleanup-job', type: 'folder' }
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: 'shared',
|
|
83
|
+
type: 'folder',
|
|
84
|
+
description: 'Shared code across functions',
|
|
85
|
+
children: [
|
|
86
|
+
{ name: 'domain', type: 'folder', description: 'Business logic' },
|
|
87
|
+
{ name: 'utils', type: 'folder', description: 'Utilities' },
|
|
88
|
+
{ name: 'clients', type: 'folder', description: 'External service clients' }
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: 'infrastructure',
|
|
93
|
+
type: 'folder',
|
|
94
|
+
description: 'IaC definitions',
|
|
95
|
+
children: [
|
|
96
|
+
{ name: 'cdk', type: 'folder', description: 'AWS CDK or' },
|
|
97
|
+
{ name: 'terraform', type: 'folder', description: 'Terraform configs' }
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
commonPitfalls: [
|
|
103
|
+
'Functions too large (should be < 500 lines)',
|
|
104
|
+
'Ignoring cold start latency',
|
|
105
|
+
'No local development/testing setup',
|
|
106
|
+
'Synchronous chains of functions',
|
|
107
|
+
'Over-reliance on managed services',
|
|
108
|
+
'Missing structured logging',
|
|
109
|
+
'Not monitoring costs per function'
|
|
110
|
+
],
|
|
111
|
+
aiInstructions: `When generating code for Serverless Backend:
|
|
112
|
+
|
|
113
|
+
FUNCTION DESIGN:
|
|
114
|
+
- Functions must be stateless and idempotent
|
|
115
|
+
- Keep function code under 500 lines
|
|
116
|
+
- Separate business logic from handler boilerplate
|
|
117
|
+
- One function = one responsibility
|
|
118
|
+
|
|
119
|
+
CONFIGURATION:
|
|
120
|
+
- Use environment variables for configuration
|
|
121
|
+
- Secrets in secrets manager, not env vars
|
|
122
|
+
- Configure appropriate memory/timeout
|
|
123
|
+
|
|
124
|
+
COLD START:
|
|
125
|
+
- Keep dependencies minimal
|
|
126
|
+
- Use lazy initialization for heavy resources
|
|
127
|
+
- Consider provisioned concurrency for latency-sensitive functions
|
|
128
|
+
|
|
129
|
+
OBSERVABILITY:
|
|
130
|
+
- Implement structured logging from start
|
|
131
|
+
- Include request ID in all logs
|
|
132
|
+
- Use distributed tracing (X-Ray, etc.)
|
|
133
|
+
|
|
134
|
+
TESTING:
|
|
135
|
+
- Unit test business logic independently
|
|
136
|
+
- Integration test with local emulators (LocalStack, etc.)
|
|
137
|
+
- Test handler wrapper separately`
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Read-Heavy API Architecture
|
|
141
|
+
* Optimized for high read-to-write ratio
|
|
142
|
+
*/
|
|
143
|
+
exports.readHeavy = {
|
|
144
|
+
id: 'read-heavy',
|
|
145
|
+
name: 'Read-Heavy API',
|
|
146
|
+
description: 'Backend optimized for high read-to-write ratio. Aggressive caching, denormalized storage, eventual consistency for reads.',
|
|
147
|
+
whenToUse: [
|
|
148
|
+
'Read:Write ratio > 10:1',
|
|
149
|
+
'Data changes infrequently',
|
|
150
|
+
'Latency for reads critical',
|
|
151
|
+
'Can tolerate stale reads',
|
|
152
|
+
'Content delivery / catalog systems',
|
|
153
|
+
'Public-facing high-traffic APIs'
|
|
154
|
+
],
|
|
155
|
+
whenNotToUse: [
|
|
156
|
+
'Data changes frequently',
|
|
157
|
+
'Strong consistency required for reads',
|
|
158
|
+
'Write-heavy workload',
|
|
159
|
+
'Cache invalidation complexity unacceptable',
|
|
160
|
+
'Data freshness critical (financial, real-time)'
|
|
161
|
+
],
|
|
162
|
+
corePrinciples: [
|
|
163
|
+
'Cache everything cacheable',
|
|
164
|
+
'Denormalize data for read performance',
|
|
165
|
+
'Accept eventual consistency',
|
|
166
|
+
'Invalidate caches explicitly on writes',
|
|
167
|
+
'Multiple cache layers (CDN, app, DB)',
|
|
168
|
+
'Optimize for cache hits'
|
|
169
|
+
],
|
|
170
|
+
folderStructure: {
|
|
171
|
+
name: 'src',
|
|
172
|
+
type: 'folder',
|
|
173
|
+
children: [
|
|
174
|
+
{
|
|
175
|
+
name: 'api',
|
|
176
|
+
type: 'folder',
|
|
177
|
+
children: [
|
|
178
|
+
{ name: 'queries', type: 'folder', description: 'Read endpoints' },
|
|
179
|
+
{ name: 'commands', type: 'folder', description: 'Write endpoints' }
|
|
180
|
+
]
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
name: 'cache',
|
|
184
|
+
type: 'folder',
|
|
185
|
+
children: [
|
|
186
|
+
{ name: 'strategies', type: 'folder', description: 'Cache patterns' },
|
|
187
|
+
{ name: 'invalidation', type: 'folder', description: 'Cache invalidation logic' },
|
|
188
|
+
{ name: 'warming', type: 'folder', description: 'Pre-populate caches' }
|
|
189
|
+
]
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
name: 'read-models',
|
|
193
|
+
type: 'folder',
|
|
194
|
+
description: 'Denormalized views optimized for queries'
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
name: 'projectors',
|
|
198
|
+
type: 'folder',
|
|
199
|
+
description: 'Update read models on writes'
|
|
200
|
+
},
|
|
201
|
+
{ name: 'domain', type: 'folder' },
|
|
202
|
+
{
|
|
203
|
+
name: 'infrastructure',
|
|
204
|
+
type: 'folder',
|
|
205
|
+
children: [
|
|
206
|
+
{ name: 'cache', type: 'folder', description: 'Redis, Memcached' },
|
|
207
|
+
{ name: 'database', type: 'folder' }
|
|
208
|
+
]
|
|
209
|
+
}
|
|
210
|
+
]
|
|
211
|
+
},
|
|
212
|
+
commonPitfalls: [
|
|
213
|
+
'Cache stampede on invalidation - use locking or probabilistic expiry',
|
|
214
|
+
'Stale cache with no TTL - always set TTL',
|
|
215
|
+
'Missing cache warming strategy - cold cache = slow startup',
|
|
216
|
+
'Over-caching (wasted memory) - cache what matters',
|
|
217
|
+
'No cache hit rate monitoring - flying blind',
|
|
218
|
+
'Complex invalidation logic - simpler is better'
|
|
219
|
+
],
|
|
220
|
+
aiInstructions: `When generating code for Read-Heavy API:
|
|
221
|
+
|
|
222
|
+
CACHING:
|
|
223
|
+
- Every query endpoint checks cache first
|
|
224
|
+
- Cache TTL required for all cached data
|
|
225
|
+
- Use cache-aside pattern as default
|
|
226
|
+
- Implement multi-layer caching where appropriate
|
|
227
|
+
|
|
228
|
+
INVALIDATION:
|
|
229
|
+
- Write operations invalidate affected caches
|
|
230
|
+
- Use cache tags for grouped invalidation
|
|
231
|
+
- Consider event-driven invalidation
|
|
232
|
+
- Handle cache stampede protection
|
|
233
|
+
|
|
234
|
+
READ MODELS:
|
|
235
|
+
- Denormalize for query patterns
|
|
236
|
+
- Accept data duplication for performance
|
|
237
|
+
- Update read models on writes (sync or async)
|
|
238
|
+
|
|
239
|
+
MONITORING:
|
|
240
|
+
- Log cache hit/miss rates
|
|
241
|
+
- Alert on low hit rates
|
|
242
|
+
- Monitor cache memory usage
|
|
243
|
+
|
|
244
|
+
PATTERNS:
|
|
245
|
+
- Cache-aside: app manages cache
|
|
246
|
+
- Read-through: cache fetches on miss
|
|
247
|
+
- Write-through: writes go to cache first`
|
|
248
|
+
};
|
|
249
|
+
/**
|
|
250
|
+
* Automation / Bot Backend Architecture
|
|
251
|
+
* Scheduled jobs, workflows, integrations
|
|
252
|
+
*/
|
|
253
|
+
exports.automation = {
|
|
254
|
+
id: 'automation',
|
|
255
|
+
name: 'Automation / Bot Backend',
|
|
256
|
+
description: 'Backend for scheduled jobs, workflows, integrations, and automated processes. Emphasizes reliability, retries, and observability.',
|
|
257
|
+
whenToUse: [
|
|
258
|
+
'Scheduled batch processing',
|
|
259
|
+
'Third-party integrations',
|
|
260
|
+
'Workflow orchestration',
|
|
261
|
+
'Background job processing',
|
|
262
|
+
'Data pipelines',
|
|
263
|
+
'Automated notifications / alerts'
|
|
264
|
+
],
|
|
265
|
+
whenNotToUse: [
|
|
266
|
+
'Real-time user interactions',
|
|
267
|
+
'Low latency requirements',
|
|
268
|
+
'Simple CRUD operations',
|
|
269
|
+
'User-facing API as primary purpose'
|
|
270
|
+
],
|
|
271
|
+
corePrinciples: [
|
|
272
|
+
'All jobs must be idempotent',
|
|
273
|
+
'Explicit retry policies with backoff',
|
|
274
|
+
'Comprehensive logging and tracing',
|
|
275
|
+
'Failure isolation between jobs',
|
|
276
|
+
'Clear timeout for every operation',
|
|
277
|
+
'Compensating transactions for failures'
|
|
278
|
+
],
|
|
279
|
+
folderStructure: {
|
|
280
|
+
name: 'src',
|
|
281
|
+
type: 'folder',
|
|
282
|
+
children: [
|
|
283
|
+
{
|
|
284
|
+
name: 'jobs',
|
|
285
|
+
type: 'folder',
|
|
286
|
+
children: [
|
|
287
|
+
{
|
|
288
|
+
name: 'scheduled',
|
|
289
|
+
type: 'folder',
|
|
290
|
+
description: 'Cron jobs',
|
|
291
|
+
children: [
|
|
292
|
+
{ name: 'daily-report', type: 'folder' },
|
|
293
|
+
{ name: 'cleanup', type: 'folder' },
|
|
294
|
+
{ name: 'sync-external', type: 'folder' }
|
|
295
|
+
]
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
name: 'triggered',
|
|
299
|
+
type: 'folder',
|
|
300
|
+
description: 'Event-triggered jobs'
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
name: 'workflows',
|
|
304
|
+
type: 'folder',
|
|
305
|
+
description: 'Multi-step processes'
|
|
306
|
+
}
|
|
307
|
+
]
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
name: 'integrations',
|
|
311
|
+
type: 'folder',
|
|
312
|
+
description: 'External API clients',
|
|
313
|
+
children: [
|
|
314
|
+
{ name: 'slack', type: 'folder' },
|
|
315
|
+
{ name: 'stripe', type: 'folder' },
|
|
316
|
+
{ name: 'sendgrid', type: 'folder' },
|
|
317
|
+
{ name: 'salesforce', type: 'folder' }
|
|
318
|
+
]
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
name: 'shared',
|
|
322
|
+
type: 'folder',
|
|
323
|
+
children: [
|
|
324
|
+
{ name: 'retry', type: 'folder', description: 'Retry utilities' },
|
|
325
|
+
{ name: 'logging', type: 'folder', description: 'Structured logging' },
|
|
326
|
+
{ name: 'monitoring', type: 'folder', description: 'Metrics, alerts' }
|
|
327
|
+
]
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
name: 'infrastructure',
|
|
331
|
+
type: 'folder',
|
|
332
|
+
children: [
|
|
333
|
+
{ name: 'scheduler', type: 'folder', description: 'Job scheduling' },
|
|
334
|
+
{ name: 'queue', type: 'folder', description: 'Job queues' }
|
|
335
|
+
]
|
|
336
|
+
}
|
|
337
|
+
]
|
|
338
|
+
},
|
|
339
|
+
commonPitfalls: [
|
|
340
|
+
'Non-idempotent jobs - re-runs cause duplicates',
|
|
341
|
+
'Missing retry logic - transient failures break everything',
|
|
342
|
+
'No dead letter handling - failed jobs disappear',
|
|
343
|
+
'Insufficient logging - debugging is impossible',
|
|
344
|
+
'Jobs without timeout - stuck jobs consume resources',
|
|
345
|
+
'No job state tracking - cannot resume or debug',
|
|
346
|
+
'Missing alerting on failures'
|
|
347
|
+
],
|
|
348
|
+
aiInstructions: `When generating code for Automation Backend:
|
|
349
|
+
|
|
350
|
+
JOBS:
|
|
351
|
+
- Every job operation MUST be idempotent
|
|
352
|
+
- Set explicit timeout for every job
|
|
353
|
+
- Include job ID in all log entries
|
|
354
|
+
- Log: job start, progress checkpoints, completion, failure
|
|
355
|
+
|
|
356
|
+
RETRY:
|
|
357
|
+
- Implement exponential backoff for retries
|
|
358
|
+
- Configure max retry attempts
|
|
359
|
+
- Use jitter to prevent thundering herd
|
|
360
|
+
- Different retry strategies for different failure types
|
|
361
|
+
|
|
362
|
+
INTEGRATIONS:
|
|
363
|
+
- Wrap all external API calls with retry logic
|
|
364
|
+
- Implement circuit breaker for unreliable APIs
|
|
365
|
+
- Cache authentication tokens appropriately
|
|
366
|
+
- Handle rate limiting gracefully
|
|
367
|
+
|
|
368
|
+
MONITORING:
|
|
369
|
+
- Track job execution duration
|
|
370
|
+
- Alert on job failures
|
|
371
|
+
- Monitor success/failure rates
|
|
372
|
+
- Dashboard for job status overview
|
|
373
|
+
|
|
374
|
+
WORKFLOWS:
|
|
375
|
+
- Break into checkpointed steps
|
|
376
|
+
- Each step independently resumable
|
|
377
|
+
- Handle partial failures with compensation`
|
|
378
|
+
};
|
|
379
|
+
//# sourceMappingURL=specialized.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specialized.js","sourceRoot":"","sources":["../../src/styles/specialized.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IronBackend Core Types
|
|
3
|
+
* Shared type definitions for architecture styles, stacks, rules, and security
|
|
4
|
+
*/
|
|
5
|
+
export interface ArchitectureStyle {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
whenToUse: string[];
|
|
10
|
+
whenNotToUse: string[];
|
|
11
|
+
corePrinciples: string[];
|
|
12
|
+
folderStructure: FolderNode;
|
|
13
|
+
commonPitfalls: string[];
|
|
14
|
+
aiInstructions: string;
|
|
15
|
+
}
|
|
16
|
+
export interface FolderNode {
|
|
17
|
+
name: string;
|
|
18
|
+
type: 'folder' | 'file';
|
|
19
|
+
description?: string;
|
|
20
|
+
children?: FolderNode[];
|
|
21
|
+
}
|
|
22
|
+
export interface TechStack {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
language: string;
|
|
26
|
+
languageVersion: string;
|
|
27
|
+
framework: string;
|
|
28
|
+
frameworkVersion: string;
|
|
29
|
+
database: DatabaseConfig;
|
|
30
|
+
messaging: MessagingConfig;
|
|
31
|
+
authentication: string;
|
|
32
|
+
logging: string;
|
|
33
|
+
testing: TestingConfig;
|
|
34
|
+
deployment: string[];
|
|
35
|
+
conventions: string[];
|
|
36
|
+
}
|
|
37
|
+
export interface DatabaseConfig {
|
|
38
|
+
type: string;
|
|
39
|
+
orm: string;
|
|
40
|
+
driver?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface MessagingConfig {
|
|
43
|
+
type: string;
|
|
44
|
+
provider: string;
|
|
45
|
+
}
|
|
46
|
+
export interface TestingConfig {
|
|
47
|
+
unit: string;
|
|
48
|
+
integration: string;
|
|
49
|
+
e2e?: string;
|
|
50
|
+
coverageTarget: number;
|
|
51
|
+
}
|
|
52
|
+
export type RuleSeverity = 'ERROR' | 'WARN';
|
|
53
|
+
export type RuleCategory = 'API' | 'DOMAIN' | 'ERROR_HANDLING' | 'TRANSACTIONS' | 'DATA_ACCESS' | 'NAMING' | 'VALIDATION' | 'ASYNC';
|
|
54
|
+
export interface DesignRule {
|
|
55
|
+
id: string;
|
|
56
|
+
category: RuleCategory;
|
|
57
|
+
rule: string;
|
|
58
|
+
severity: RuleSeverity;
|
|
59
|
+
rationale?: string;
|
|
60
|
+
examples?: RuleExample[];
|
|
61
|
+
}
|
|
62
|
+
export interface RuleExample {
|
|
63
|
+
type: 'good' | 'bad';
|
|
64
|
+
code: string;
|
|
65
|
+
explanation?: string;
|
|
66
|
+
}
|
|
67
|
+
export type AuthStrategy = 'JWT' | 'SESSION' | 'API_KEY' | 'OAUTH2' | 'MTLS';
|
|
68
|
+
export type AuthorizationModel = 'RBAC' | 'ABAC';
|
|
69
|
+
export interface AuthConfig {
|
|
70
|
+
strategy: AuthStrategy;
|
|
71
|
+
useWhen: string[];
|
|
72
|
+
implementation: string[];
|
|
73
|
+
}
|
|
74
|
+
export interface SecurityPlaybook {
|
|
75
|
+
authentication: AuthConfig[];
|
|
76
|
+
authorization: AuthorizationDescription;
|
|
77
|
+
rateLimiting: RateLimitConfig;
|
|
78
|
+
idempotency: IdempotencyConfig;
|
|
79
|
+
retryStrategy: RetryConfig;
|
|
80
|
+
circuitBreaker: CircuitBreakerConfig;
|
|
81
|
+
auditLogging: AuditConfig;
|
|
82
|
+
failurePhilosophy: string[];
|
|
83
|
+
}
|
|
84
|
+
export interface AuthorizationDescription {
|
|
85
|
+
rbac: AuthModelDescription;
|
|
86
|
+
abac: AuthModelDescription;
|
|
87
|
+
decisionMatrix: Record<string, {
|
|
88
|
+
rbac: string;
|
|
89
|
+
abac: string;
|
|
90
|
+
}>;
|
|
91
|
+
}
|
|
92
|
+
export interface AuthModelDescription {
|
|
93
|
+
description: string;
|
|
94
|
+
checkPattern: string;
|
|
95
|
+
goodFor: string[];
|
|
96
|
+
}
|
|
97
|
+
export interface RateLimitConfig {
|
|
98
|
+
windowType: string;
|
|
99
|
+
defaultLimit: string;
|
|
100
|
+
anonymousLimit: string;
|
|
101
|
+
headers: string[];
|
|
102
|
+
responseCode: number;
|
|
103
|
+
}
|
|
104
|
+
export interface IdempotencyConfig {
|
|
105
|
+
headerName: string;
|
|
106
|
+
keyFormat: string;
|
|
107
|
+
storageDuration: string;
|
|
108
|
+
implementation: string[];
|
|
109
|
+
}
|
|
110
|
+
export interface RetryConfig {
|
|
111
|
+
baseDelay: string;
|
|
112
|
+
multiplier: number;
|
|
113
|
+
maxRetries: number;
|
|
114
|
+
maxDelay: string;
|
|
115
|
+
jitter: string;
|
|
116
|
+
retryOn: number[];
|
|
117
|
+
doNotRetryOn: number[];
|
|
118
|
+
}
|
|
119
|
+
export interface CircuitBreakerConfig {
|
|
120
|
+
states: string[];
|
|
121
|
+
failureThreshold: number;
|
|
122
|
+
successThreshold: number;
|
|
123
|
+
timeout: string;
|
|
124
|
+
monitoringWindow: string;
|
|
125
|
+
}
|
|
126
|
+
export interface AuditConfig {
|
|
127
|
+
requiredEvents: string[];
|
|
128
|
+
logFormat: Record<string, string>;
|
|
129
|
+
}
|
|
130
|
+
export interface IronBackendConfig {
|
|
131
|
+
version: string;
|
|
132
|
+
style?: string;
|
|
133
|
+
stack?: string;
|
|
134
|
+
rules: {
|
|
135
|
+
enabled: RuleCategory[];
|
|
136
|
+
overrides: Record<string, RuleSeverity>;
|
|
137
|
+
};
|
|
138
|
+
security: {
|
|
139
|
+
authStrategy?: AuthStrategy;
|
|
140
|
+
authorizationModel?: AuthorizationModel;
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ironbackend/core",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Backend architecture styles, rules, stacks, and security playbooks",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./styles": {
|
|
14
|
+
"types": "./dist/styles/index.d.ts",
|
|
15
|
+
"import": "./dist/styles/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./stacks": {
|
|
18
|
+
"types": "./dist/stacks/index.d.ts",
|
|
19
|
+
"import": "./dist/stacks/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./rules": {
|
|
22
|
+
"types": "./dist/rules/index.d.ts",
|
|
23
|
+
"import": "./dist/rules/index.js"
|
|
24
|
+
},
|
|
25
|
+
"./security": {
|
|
26
|
+
"types": "./dist/security/index.d.ts",
|
|
27
|
+
"import": "./dist/security/index.js"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"dist"
|
|
32
|
+
],
|
|
33
|
+
"keywords": [
|
|
34
|
+
"backend",
|
|
35
|
+
"architecture",
|
|
36
|
+
"ai",
|
|
37
|
+
"coding-assistant",
|
|
38
|
+
"patterns",
|
|
39
|
+
"design-rules"
|
|
40
|
+
],
|
|
41
|
+
"author": "IronBackend Contributors",
|
|
42
|
+
"license": "MIT",
|
|
43
|
+
"repository": {
|
|
44
|
+
"type": "git",
|
|
45
|
+
"url": "https://github.com/ironbackend/ironbackend.git",
|
|
46
|
+
"directory": "packages/core"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"typescript": "^5.3.0"
|
|
50
|
+
},
|
|
51
|
+
"scripts": {
|
|
52
|
+
"build": "tsc",
|
|
53
|
+
"test": "vitest run",
|
|
54
|
+
"clean": "rm -rf dist"
|
|
55
|
+
}
|
|
56
|
+
}
|