@synapsestudios/eslint-plugin-data-boundaries 1.1.0 → 1.2.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/README.md
CHANGED
|
@@ -79,10 +79,6 @@ class AuthService {
|
|
|
79
79
|
async getUser(id: string) {
|
|
80
80
|
return this.prisma.user.findUnique({ where: { id } }); // ✅ Valid: User belongs to auth domain
|
|
81
81
|
}
|
|
82
|
-
|
|
83
|
-
async logAction(action: string) {
|
|
84
|
-
return this.prisma.auditLog.create({ data: { action } }); // ✅ Valid: AuditLog is a shared model
|
|
85
|
-
}
|
|
86
82
|
}
|
|
87
83
|
```
|
|
88
84
|
|
|
@@ -118,7 +114,6 @@ module.exports = {
|
|
|
118
114
|
rules: {
|
|
119
115
|
'@synapsestudios/data-boundaries/no-cross-domain-prisma-access': ['error', {
|
|
120
116
|
schemaDir: 'prisma/schema',
|
|
121
|
-
allowSharedModels: true,
|
|
122
117
|
modulePath: '/modules/' // Default - change to '/src/' for NestJS projects
|
|
123
118
|
}]
|
|
124
119
|
}
|
|
@@ -169,7 +164,6 @@ export default [
|
|
|
169
164
|
'error',
|
|
170
165
|
{
|
|
171
166
|
schemaDir: 'prisma/schema',
|
|
172
|
-
allowSharedModels: true,
|
|
173
167
|
modulePath: '/src/' // Use '/src/' for NestJS, '/modules/' for other structures
|
|
174
168
|
}
|
|
175
169
|
],
|
|
@@ -202,14 +196,12 @@ module.exports = {
|
|
|
202
196
|
#### `no-cross-domain-prisma-access`
|
|
203
197
|
|
|
204
198
|
- **`schemaDir`** (string): Directory containing Prisma schema files, relative to project root. Default: `'prisma/schema'`
|
|
205
|
-
- **`allowSharedModels`** (boolean): Whether to allow access to models in shared/main schema files. Default: `true`
|
|
206
199
|
- **`modulePath`** (string): Path pattern to match module directories. Default: `'/modules/'`. Use `'/src/'` for NestJS projects or other domain-based structures.
|
|
207
200
|
|
|
208
201
|
```javascript
|
|
209
202
|
{
|
|
210
203
|
'@synapsestudios/data-boundaries/no-cross-domain-prisma-access': ['error', {
|
|
211
204
|
schemaDir: 'database/schemas',
|
|
212
|
-
allowSharedModels: false,
|
|
213
205
|
modulePath: '/src/' // For NestJS-style projects
|
|
214
206
|
}]
|
|
215
207
|
}
|
|
@@ -337,8 +329,7 @@ Make sure your `schemaDir` option points to the correct directory containing you
|
|
|
337
329
|
{
|
|
338
330
|
'@synapsestudios/data-boundaries/no-cross-domain-prisma-access': ['error', {
|
|
339
331
|
schemaDir: 'prisma/schema', // Adjust this path as needed
|
|
340
|
-
|
|
341
|
-
}]
|
|
332
|
+
}]
|
|
342
333
|
}
|
|
343
334
|
```
|
|
344
335
|
|
|
@@ -353,8 +344,7 @@ For **NestJS projects** or other domain-based structures, configure `modulePath:
|
|
|
353
344
|
'@synapsestudios/data-boundaries/no-cross-domain-prisma-access': ['error', {
|
|
354
345
|
schemaDir: 'prisma/schema',
|
|
355
346
|
modulePath: '/src/', // ← Add this for NestJS projects
|
|
356
|
-
|
|
357
|
-
}]
|
|
347
|
+
}]
|
|
358
348
|
}
|
|
359
349
|
```
|
|
360
350
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ESLintUtils } from '@typescript-eslint/utils';
|
|
2
2
|
interface RuleOptions {
|
|
3
3
|
schemaDir: string;
|
|
4
|
-
allowSharedModels: boolean;
|
|
5
4
|
modulePath: string;
|
|
6
5
|
}
|
|
7
6
|
declare const rule: ESLintUtils.RuleModule<"crossDomainAccess" | "modelNotFound" | "configError", [RuleOptions], unknown, ESLintUtils.RuleListener>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-cross-domain-prisma-access.d.ts","sourceRoot":"","sources":["../../src/rules/no-cross-domain-prisma-access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAY,MAAM,0BAA0B,CAAC;AAWjE,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"no-cross-domain-prisma-access.d.ts","sourceRoot":"","sources":["../../src/rules/no-cross-domain-prisma-access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAY,MAAM,0BAA0B,CAAC;AAWjE,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAyDD,QAAA,MAAM,IAAI,iIA8HR,CAAC;AAEH,SAAS,IAAI,CAAC"}
|
|
@@ -95,10 +95,6 @@ const rule = createRule({
|
|
|
95
95
|
type: 'string',
|
|
96
96
|
description: 'Directory containing Prisma schema files (relative to project root)',
|
|
97
97
|
},
|
|
98
|
-
allowSharedModels: {
|
|
99
|
-
type: 'boolean',
|
|
100
|
-
description: 'Allow access to models in shared/main schema files',
|
|
101
|
-
},
|
|
102
98
|
modulePath: {
|
|
103
99
|
type: 'string',
|
|
104
100
|
description: 'Path pattern to match module directories (e.g., "/modules/", "/src/")',
|
|
@@ -116,7 +112,6 @@ const rule = createRule({
|
|
|
116
112
|
defaultOptions: [
|
|
117
113
|
{
|
|
118
114
|
schemaDir: 'prisma/schema',
|
|
119
|
-
allowSharedModels: true,
|
|
120
115
|
modulePath: '/modules/',
|
|
121
116
|
},
|
|
122
117
|
],
|
|
@@ -185,10 +180,6 @@ const rule = createRule({
|
|
|
185
180
|
});
|
|
186
181
|
return;
|
|
187
182
|
}
|
|
188
|
-
// Allow access to shared models if configured
|
|
189
|
-
if (options.allowSharedModels && modelDomain === 'shared') {
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
183
|
// Check if current module matches model domain
|
|
193
184
|
if (currentModule !== modelDomain) {
|
|
194
185
|
context.report({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-cross-domain-prisma-access.js","sourceRoot":"","sources":["../../src/rules/no-cross-domain-prisma-access.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAiE;AACjE,2CAA6B;AAC7B,uCAAyB;AACzB,0DAMgC;
|
|
1
|
+
{"version":3,"file":"no-cross-domain-prisma-access.js","sourceRoot":"","sources":["../../src/rules/no-cross-domain-prisma-access.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED