@opensaas/stack-core 0.39.2 → 0.41.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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +189 -0
- package/CLAUDE.md +103 -0
- package/dist/access/access-filter.d.ts +157 -14
- package/dist/access/access-filter.d.ts.map +1 -1
- package/dist/access/access-filter.js +470 -42
- package/dist/access/access-filter.js.map +1 -1
- package/dist/access/access-filter.test.js +982 -17
- package/dist/access/access-filter.test.js.map +1 -1
- package/dist/access/denied-relation-visibility.test.d.ts +2 -0
- package/dist/access/denied-relation-visibility.test.d.ts.map +1 -0
- package/dist/access/denied-relation-visibility.test.js +114 -0
- package/dist/access/denied-relation-visibility.test.js.map +1 -0
- package/dist/access/engine.d.ts +54 -1
- package/dist/access/engine.d.ts.map +1 -1
- package/dist/access/engine.js +84 -0
- package/dist/access/engine.js.map +1 -1
- package/dist/access/engine.test.d.ts +2 -0
- package/dist/access/engine.test.d.ts.map +1 -0
- package/dist/access/engine.test.js +56 -0
- package/dist/access/engine.test.js.map +1 -0
- package/dist/access/errors.d.ts +62 -0
- package/dist/access/errors.d.ts.map +1 -1
- package/dist/access/errors.js +85 -2
- package/dist/access/errors.js.map +1 -1
- package/dist/access/field-access.d.ts +12 -0
- package/dist/access/field-access.d.ts.map +1 -1
- package/dist/access/field-access.js +22 -2
- package/dist/access/field-access.js.map +1 -1
- package/dist/access/field-access.test.js +66 -0
- package/dist/access/field-access.test.js.map +1 -1
- package/dist/access/field-visibility.d.ts +2 -1
- package/dist/access/field-visibility.d.ts.map +1 -1
- package/dist/access/field-visibility.js +107 -15
- package/dist/access/field-visibility.js.map +1 -1
- package/dist/access/index.d.ts +9 -2
- package/dist/access/index.d.ts.map +1 -1
- package/dist/access/index.js +11 -2
- package/dist/access/index.js.map +1 -1
- package/dist/access/multi-column-read-write.test.js.map +1 -1
- package/dist/access/query-validation.d.ts +31 -0
- package/dist/access/query-validation.d.ts.map +1 -1
- package/dist/access/query-validation.js +75 -16
- package/dist/access/query-validation.js.map +1 -1
- package/dist/access/relationship-count.d.ts +41 -3
- package/dist/access/relationship-count.d.ts.map +1 -1
- package/dist/access/relationship-count.js +44 -7
- package/dist/access/relationship-count.js.map +1 -1
- package/dist/access/relationship-count.test.js +62 -0
- package/dist/access/relationship-count.test.js.map +1 -1
- package/dist/access/synthetic-include-read.test.d.ts +2 -0
- package/dist/access/synthetic-include-read.test.d.ts.map +1 -0
- package/dist/access/synthetic-include-read.test.js +121 -0
- package/dist/access/synthetic-include-read.test.js.map +1 -0
- package/dist/config/types.d.ts +98 -32
- package/dist/config/types.d.ts.map +1 -1
- package/dist/context/hook-pipeline.d.ts +2 -2
- package/dist/context/hook-pipeline.d.ts.map +1 -1
- package/dist/context/hook-pipeline.js.map +1 -1
- package/dist/context/index.d.ts +35 -2
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +121 -27
- package/dist/context/index.js.map +1 -1
- package/dist/context/nested-operations.d.ts +2 -2
- package/dist/context/nested-operations.d.ts.map +1 -1
- package/dist/context/nested-operations.js +74 -15
- package/dist/context/nested-operations.js.map +1 -1
- package/dist/context/write-pipeline.d.ts +3 -2
- package/dist/context/write-pipeline.d.ts.map +1 -1
- package/dist/context/write-pipeline.js +31 -34
- package/dist/context/write-pipeline.js.map +1 -1
- package/dist/fields/index.d.ts +13 -1
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.js +50 -5
- package/dist/fields/index.js.map +1 -1
- package/dist/fields/relationship-foreign-key.test.d.ts +2 -0
- package/dist/fields/relationship-foreign-key.test.d.ts.map +1 -0
- package/dist/fields/relationship-foreign-key.test.js +18 -0
- package/dist/fields/relationship-foreign-key.test.js.map +1 -0
- package/dist/hooks/index.d.ts +16 -15
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/case-utils.d.ts +15 -0
- package/dist/lib/case-utils.d.ts.map +1 -1
- package/dist/lib/case-utils.js +21 -0
- package/dist/lib/case-utils.js.map +1 -1
- package/dist/lib/case-utils.test.js +23 -1
- package/dist/lib/case-utils.test.js.map +1 -1
- package/dist/lib/prisma-errors.d.ts +38 -0
- package/dist/lib/prisma-errors.d.ts.map +1 -0
- package/dist/lib/prisma-errors.js +53 -0
- package/dist/lib/prisma-errors.js.map +1 -0
- package/dist/mcp/constants.d.ts +23 -0
- package/dist/mcp/constants.d.ts.map +1 -0
- package/dist/mcp/constants.js +23 -0
- package/dist/mcp/constants.js.map +1 -0
- package/dist/mcp/field-schema.d.ts +8 -0
- package/dist/mcp/field-schema.d.ts.map +1 -0
- package/dist/mcp/field-schema.js +69 -0
- package/dist/mcp/field-schema.js.map +1 -0
- package/dist/mcp/handler.d.ts.map +1 -1
- package/dist/mcp/handler.js +76 -90
- package/dist/mcp/handler.js.map +1 -1
- package/dist/mcp/projection.d.ts +62 -0
- package/dist/mcp/projection.d.ts.map +1 -0
- package/dist/mcp/projection.js +390 -0
- package/dist/mcp/projection.js.map +1 -0
- package/dist/utils/password.d.ts +3 -1
- package/dist/utils/password.d.ts.map +1 -1
- package/dist/utils/password.js +4 -2
- package/dist/utils/password.js.map +1 -1
- package/package.json +2 -2
- package/src/access/access-filter.test.ts +1528 -18
- package/src/access/access-filter.ts +708 -42
- package/src/access/denied-relation-visibility.test.ts +173 -0
- package/src/access/engine.test.ts +67 -0
- package/src/access/engine.ts +109 -1
- package/src/access/errors.ts +97 -2
- package/src/access/field-access.test.ts +78 -0
- package/src/access/field-access.ts +34 -2
- package/src/access/field-visibility.ts +171 -25
- package/src/access/index.ts +25 -0
- package/src/access/multi-column-read-write.test.ts +3 -2
- package/src/access/query-validation.ts +136 -9
- package/src/access/relationship-count.test.ts +75 -0
- package/src/access/relationship-count.ts +53 -10
- package/src/access/synthetic-include-read.test.ts +179 -0
- package/src/config/types.ts +98 -32
- package/src/context/hook-pipeline.ts +4 -2
- package/src/context/index.ts +203 -42
- package/src/context/nested-operations.ts +96 -27
- package/src/context/write-pipeline.ts +60 -36
- package/src/fields/index.ts +55 -5
- package/src/fields/relationship-foreign-key.test.ts +29 -0
- package/src/hooks/index.ts +22 -15
- package/src/index.ts +17 -1
- package/src/lib/case-utils.test.ts +32 -0
- package/src/lib/case-utils.ts +26 -0
- package/src/lib/prisma-errors.ts +86 -0
- package/src/mcp/constants.ts +24 -0
- package/src/mcp/field-schema.ts +84 -0
- package/src/mcp/handler.ts +109 -107
- package/src/mcp/projection.ts +497 -0
- package/src/utils/password.ts +5 -3
- package/tests/access-relationships.test.ts +3 -3
- package/tests/access.test.ts +83 -0
- package/tests/context.test.ts +452 -17
- package/tests/field-types.test.ts +113 -0
- package/tests/hook-context-secured.test.ts +424 -0
- package/tests/mcp-fields-projection-access.test.ts +250 -0
- package/tests/mcp-handler.test.ts +695 -4
- package/tests/nested-access-and-hooks.test.ts +389 -0
- package/tests/nested-write-synthetic-relation.test.ts +437 -0
- package/tests/password-types.test.ts +28 -0
- package/tests/password.test.ts +16 -2
- package/tests/prisma-errors.test.ts +141 -0
- package/tests/singleton.test.ts +9 -1
- package/tests/to-one-include-access-filter.test.ts +172 -0
- package/tests/with-session.test.ts +243 -0
- package/tests/write-pipeline.test.ts +29 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-filter.test.js","sourceRoot":"","sources":["../../src/access/access-filter.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"access-filter.test.js","sourceRoot":"","sources":["../../src/access/access-filter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"denied-relation-visibility.test.d.ts","sourceRoot":"","sources":["../../src/access/denied-relation-visibility.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { filterReadableFields } from './field-visibility.js';
|
|
3
|
+
import { emptyDeclaredOnlyTree } from './declared-dependencies.js';
|
|
4
|
+
/**
|
|
5
|
+
* Regression coverage for the `filterReadableFields` half of issue #1103: a
|
|
6
|
+
* relation `buildAccessScopedInclude` denied outright is absent from the raw
|
|
7
|
+
* row (Prisma never fetched it), so the main per-field loop — which only
|
|
8
|
+
* ever visits keys `Object.entries(workingItem)` contains — never sees it.
|
|
9
|
+
* The dedicated post-query pass this file exercises is what forces the key
|
|
10
|
+
* present anyway: `null` for a to-one relation (issue #974, pre-existing),
|
|
11
|
+
* `[]` for a to-many one (issue #1103, this fix) — never a silently absent
|
|
12
|
+
* key, which is what previously broke the fragment API's typed contract
|
|
13
|
+
* (`ResultOf` types a to-many relation as an array).
|
|
14
|
+
*/
|
|
15
|
+
function rel(ref, many = false) {
|
|
16
|
+
return { type: 'relationship', ref, many };
|
|
17
|
+
}
|
|
18
|
+
function makeContext() {
|
|
19
|
+
return {
|
|
20
|
+
session: null,
|
|
21
|
+
_isSudo: false,
|
|
22
|
+
_resolveOutputChain: [],
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- minimal context for unit test
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function config() {
|
|
27
|
+
return {
|
|
28
|
+
db: { provider: 'sqlite' },
|
|
29
|
+
lists: {
|
|
30
|
+
Author: {
|
|
31
|
+
fields: {
|
|
32
|
+
name: { type: 'text' },
|
|
33
|
+
secrets: rel('Secret.author', true),
|
|
34
|
+
profile: rel('Profile.author', false),
|
|
35
|
+
hiddenSecrets: {
|
|
36
|
+
...rel('Secret.author', true),
|
|
37
|
+
access: { read: () => false },
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
access: { operation: { query: () => true } },
|
|
41
|
+
},
|
|
42
|
+
Secret: {
|
|
43
|
+
fields: { value: { type: 'text' } },
|
|
44
|
+
access: { operation: { query: () => false } },
|
|
45
|
+
},
|
|
46
|
+
Profile: {
|
|
47
|
+
fields: { bio: { type: 'text' } },
|
|
48
|
+
access: { operation: { query: () => false } },
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- minimal config for unit test
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
// Term ← Bill.term (list-only ref, no field on Term) — the synthetic
|
|
55
|
+
// back-relation case, always to-many (#1082).
|
|
56
|
+
function syntheticConfig() {
|
|
57
|
+
return {
|
|
58
|
+
db: { provider: 'sqlite' },
|
|
59
|
+
lists: {
|
|
60
|
+
Term: {
|
|
61
|
+
fields: { name: { type: 'text' } },
|
|
62
|
+
access: { operation: { query: () => true } },
|
|
63
|
+
},
|
|
64
|
+
Bill: {
|
|
65
|
+
fields: { amount: { type: 'integer' }, term: rel('Term') },
|
|
66
|
+
access: { operation: { query: () => false } },
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- minimal config for unit test
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
describe('filterReadableFields — denied relations forced present (issues #974 / #1103)', () => {
|
|
73
|
+
it('forces a denied to-many relation to [], not an absent key', async () => {
|
|
74
|
+
const cfg = config();
|
|
75
|
+
const authorRow = { id: 'a1', name: 'A' }; // `secrets` absent — never fetched by Prisma
|
|
76
|
+
const toOneVisibility = {
|
|
77
|
+
filters: { secrets: { kind: 'denied' } },
|
|
78
|
+
nested: {},
|
|
79
|
+
};
|
|
80
|
+
const result = await filterReadableFields(authorRow, cfg.lists.Author.fields, { session: null, context: makeContext() }, cfg, 0, 'Author', emptyDeclaredOnlyTree(), undefined, toOneVisibility);
|
|
81
|
+
expect(result.secrets).toEqual([]);
|
|
82
|
+
});
|
|
83
|
+
it('still forces a denied to-one relation to null (regression check, issue #974)', async () => {
|
|
84
|
+
const cfg = config();
|
|
85
|
+
const authorRow = { id: 'a1', name: 'A' }; // `profile` absent — never fetched by Prisma
|
|
86
|
+
const toOneVisibility = {
|
|
87
|
+
filters: { profile: { kind: 'denied' } },
|
|
88
|
+
nested: {},
|
|
89
|
+
};
|
|
90
|
+
const result = await filterReadableFields(authorRow, cfg.lists.Author.fields, { session: null, context: makeContext() }, cfg, 0, 'Author', emptyDeclaredOnlyTree(), undefined, toOneVisibility);
|
|
91
|
+
expect(result.profile).toBeNull();
|
|
92
|
+
});
|
|
93
|
+
it('forces a denied synthetic back-relation to [] — always to-many (#1082 interaction)', async () => {
|
|
94
|
+
const cfg = syntheticConfig();
|
|
95
|
+
const termRow = { id: 't1', name: 'Term 1' }; // `from_Bill_term` absent — never fetched
|
|
96
|
+
const toOneVisibility = {
|
|
97
|
+
filters: { from_Bill_term: { kind: 'denied' } },
|
|
98
|
+
nested: {},
|
|
99
|
+
};
|
|
100
|
+
const result = await filterReadableFields(termRow, cfg.lists.Term.fields, { session: null, context: makeContext() }, cfg, 0, 'Term', emptyDeclaredOnlyTree(), undefined, toOneVisibility);
|
|
101
|
+
expect(result.from_Bill_term).toEqual([]);
|
|
102
|
+
});
|
|
103
|
+
it('omits a denied relation entirely when field-level read access also denies it, rather than forcing []', async () => {
|
|
104
|
+
const cfg = config();
|
|
105
|
+
const authorRow = { id: 'a1', name: 'A' };
|
|
106
|
+
const toOneVisibility = {
|
|
107
|
+
filters: { hiddenSecrets: { kind: 'denied' } },
|
|
108
|
+
nested: {},
|
|
109
|
+
};
|
|
110
|
+
const result = await filterReadableFields(authorRow, cfg.lists.Author.fields, { session: null, context: makeContext() }, cfg, 0, 'Author', emptyDeclaredOnlyTree(), undefined, toOneVisibility);
|
|
111
|
+
expect('hiddenSecrets' in result).toBe(false);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
//# sourceMappingURL=denied-relation-visibility.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"denied-relation-visibility.test.js","sourceRoot":"","sources":["../../src/access/denied-relation-visibility.test.ts"],"names":[],"mappings":"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"}
|
package/dist/access/engine.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AccessControl, Session, AccessContext, PrismaFilter } from './types.js';
|
|
2
|
-
import type { OpenSaasConfig, ListConfig } from '../config/types.js';
|
|
2
|
+
import type { OpenSaasConfig, ListConfig, RelationshipField } from '../config/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Access engine — operation-level access control and shared helpers.
|
|
5
5
|
*
|
|
@@ -20,10 +20,63 @@ export declare function getRelatedListConfig(relationshipRef: string, config: Op
|
|
|
20
20
|
listName: string;
|
|
21
21
|
listConfig: ListConfig<any>;
|
|
22
22
|
} | null;
|
|
23
|
+
/** A synthetic reverse relation, resolved back to the declared field that owns it. */
|
|
24
|
+
export interface SyntheticReverseRelation {
|
|
25
|
+
sourceListName: string;
|
|
26
|
+
sourceFieldName: string;
|
|
27
|
+
sourceFieldConfig: RelationshipField<any>;
|
|
28
|
+
sourceListConfig: ListConfig<any>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Resolve a candidate data key as the synthetic back-relation a list-only
|
|
32
|
+
* `ref` (`ref: 'ListName'`, no target field) generates on its target model —
|
|
33
|
+
* Prisma requires an opposite field there, but the config never declares one,
|
|
34
|
+
* so it never appears in `parentListName`'s own `fields`. Reuses
|
|
35
|
+
* `getSyntheticFieldName` (the same construction `getPrismaRelation` emits the
|
|
36
|
+
* schema with) rather than re-deriving the `from_<List>_<field>` format by
|
|
37
|
+
* string parsing, so the two cannot drift (#978).
|
|
38
|
+
*
|
|
39
|
+
* Returns the declared relationship field that owns the relation — the write
|
|
40
|
+
* pipeline treats a resolved synthetic key exactly like a nested write through
|
|
41
|
+
* that field, so it runs the same hooks/access/recovery machinery a declared
|
|
42
|
+
* relationship field gets. Returns `null` when `fieldName` isn't one of these
|
|
43
|
+
* on `parentListName` (a genuinely unknown key, or a bidirectional relation's
|
|
44
|
+
* ref, which never synthesizes a back-relation).
|
|
45
|
+
*/
|
|
46
|
+
export declare function resolveSyntheticReverseRelation(fieldName: string, parentListName: string, config: OpenSaasConfig): SyntheticReverseRelation | null;
|
|
47
|
+
/**
|
|
48
|
+
* Enumerate every synthetic back-relation name a list-only `ref` elsewhere in
|
|
49
|
+
* the config synthesizes onto `parentListName` — the same relations
|
|
50
|
+
* `resolveSyntheticReverseRelation` resolves one at a time given a candidate
|
|
51
|
+
* key, returned here as the full set for a caller that instead needs "every
|
|
52
|
+
* relation this list carries" with no candidate to check (e.g. `_count:
|
|
53
|
+
* true`'s "count every relation" expansion in `access-filter.ts`, issue
|
|
54
|
+
* #1087 — a bare `_count: true` must include a synthetic back-relation's
|
|
55
|
+
* count exactly as it always has, not only a caller-named one).
|
|
56
|
+
*/
|
|
57
|
+
export declare function listSyntheticReverseRelationNames(parentListName: string, config: OpenSaasConfig): string[];
|
|
23
58
|
export declare function checkAccess<T = Record<string, unknown>>(accessControl: AccessControl<T> | undefined, args: {
|
|
24
59
|
session: Session | null;
|
|
25
60
|
item?: T;
|
|
26
61
|
context: AccessContext;
|
|
27
62
|
}): Promise<boolean | PrismaFilter<T>>;
|
|
63
|
+
/**
|
|
64
|
+
* Evaluate operation-level `create` access. The single evaluator shared by the
|
|
65
|
+
* write pipeline's top-level create and the nested-create path — both must
|
|
66
|
+
* reject the same way, or the two drift again (#1009).
|
|
67
|
+
*
|
|
68
|
+
* Unlike `checkAccess` (which `query`/`update`/`delete` call directly and which
|
|
69
|
+
* legitimately returns a filter for them to re-check against a row), create
|
|
70
|
+
* has no existing row and no way to test a filter against input data. A rule
|
|
71
|
+
* that returns anything other than a strict boolean — most notably a filter,
|
|
72
|
+
* which type-checks against the shared `AccessControl` signature and reads as
|
|
73
|
+
* though it scopes the create — throws `InvalidCreateAccessResultError`
|
|
74
|
+
* rather than being silently treated as an allow. See that error's doc,
|
|
75
|
+
* ADR-0022, and ADR-0030.
|
|
76
|
+
*/
|
|
77
|
+
export declare function checkCreateAccess<T = Record<string, unknown>>(listKey: string, accessControl: AccessControl<T> | undefined, args: {
|
|
78
|
+
session: Session | null;
|
|
79
|
+
context: AccessContext;
|
|
80
|
+
}): Promise<boolean>;
|
|
28
81
|
export declare function mergeFilters(userFilter: PrismaFilter | undefined, accessFilter: boolean | PrismaFilter): PrismaFilter | null;
|
|
29
82
|
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/access/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/access/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAIvF;;;;;;;;;;;;;GAaG;AAEH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,cAAc,GAErB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAA;CAAE,GAAG,IAAI,CAe1D;AAED,sFAAsF;AACtF,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IAEvB,iBAAiB,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAEzC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAA;CAClC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,cAAc,GACrB,wBAAwB,GAAG,IAAI,CAejC;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC/C,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,cAAc,GACrB,MAAM,EAAE,CAaV;AAED,wBAAsB,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,EAC3C,IAAI,EAAE;IACJ,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACvB,IAAI,CAAC,EAAE,CAAC,CAAA;IACR,OAAO,EAAE,aAAa,CAAA;CACvB,GACA,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CASpC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,EAC3C,IAAI,EAAE;IACJ,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,aAAa,CAAA;CACvB,GACA,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,wBAAgB,YAAY,CAC1B,UAAU,EAAE,YAAY,GAAG,SAAS,EACpC,YAAY,EAAE,OAAO,GAAG,YAAY,GACnC,YAAY,GAAG,IAAI,CAgBrB"}
|
package/dist/access/engine.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { getSyntheticFieldName } from '../fields/index.js';
|
|
2
|
+
import { InvalidCreateAccessResultError } from './errors.js';
|
|
1
3
|
/**
|
|
2
4
|
* Access engine — operation-level access control and shared helpers.
|
|
3
5
|
*
|
|
@@ -31,6 +33,67 @@ export function getRelatedListConfig(relationshipRef, config) {
|
|
|
31
33
|
}
|
|
32
34
|
return { listName, listConfig };
|
|
33
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Resolve a candidate data key as the synthetic back-relation a list-only
|
|
38
|
+
* `ref` (`ref: 'ListName'`, no target field) generates on its target model —
|
|
39
|
+
* Prisma requires an opposite field there, but the config never declares one,
|
|
40
|
+
* so it never appears in `parentListName`'s own `fields`. Reuses
|
|
41
|
+
* `getSyntheticFieldName` (the same construction `getPrismaRelation` emits the
|
|
42
|
+
* schema with) rather than re-deriving the `from_<List>_<field>` format by
|
|
43
|
+
* string parsing, so the two cannot drift (#978).
|
|
44
|
+
*
|
|
45
|
+
* Returns the declared relationship field that owns the relation — the write
|
|
46
|
+
* pipeline treats a resolved synthetic key exactly like a nested write through
|
|
47
|
+
* that field, so it runs the same hooks/access/recovery machinery a declared
|
|
48
|
+
* relationship field gets. Returns `null` when `fieldName` isn't one of these
|
|
49
|
+
* on `parentListName` (a genuinely unknown key, or a bidirectional relation's
|
|
50
|
+
* ref, which never synthesizes a back-relation).
|
|
51
|
+
*/
|
|
52
|
+
export function resolveSyntheticReverseRelation(fieldName, parentListName, config) {
|
|
53
|
+
for (const [sourceListName, sourceListConfig] of Object.entries(config.lists)) {
|
|
54
|
+
for (const [sourceFieldName, sourceFieldConfig] of Object.entries(sourceListConfig.fields)) {
|
|
55
|
+
if (sourceFieldConfig.type !== 'relationship')
|
|
56
|
+
continue;
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- RelationshipField must accept any TypeInfo
|
|
58
|
+
const rel = sourceFieldConfig;
|
|
59
|
+
// Only a list-only ref ('ListName', no '.fieldName') synthesizes a
|
|
60
|
+
// back-relation — a bidirectional ref's other side is a real field.
|
|
61
|
+
const refParts = rel.ref.split('.');
|
|
62
|
+
if (refParts.length !== 1 || refParts[0] !== parentListName)
|
|
63
|
+
continue;
|
|
64
|
+
if (getSyntheticFieldName(sourceListName, sourceFieldName) !== fieldName)
|
|
65
|
+
continue;
|
|
66
|
+
return { sourceListName, sourceFieldName, sourceFieldConfig: rel, sourceListConfig };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Enumerate every synthetic back-relation name a list-only `ref` elsewhere in
|
|
73
|
+
* the config synthesizes onto `parentListName` — the same relations
|
|
74
|
+
* `resolveSyntheticReverseRelation` resolves one at a time given a candidate
|
|
75
|
+
* key, returned here as the full set for a caller that instead needs "every
|
|
76
|
+
* relation this list carries" with no candidate to check (e.g. `_count:
|
|
77
|
+
* true`'s "count every relation" expansion in `access-filter.ts`, issue
|
|
78
|
+
* #1087 — a bare `_count: true` must include a synthetic back-relation's
|
|
79
|
+
* count exactly as it always has, not only a caller-named one).
|
|
80
|
+
*/
|
|
81
|
+
export function listSyntheticReverseRelationNames(parentListName, config) {
|
|
82
|
+
const names = [];
|
|
83
|
+
for (const [sourceListName, sourceListConfig] of Object.entries(config.lists)) {
|
|
84
|
+
for (const [sourceFieldName, sourceFieldConfig] of Object.entries(sourceListConfig.fields)) {
|
|
85
|
+
if (sourceFieldConfig.type !== 'relationship')
|
|
86
|
+
continue;
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- RelationshipField must accept any TypeInfo
|
|
88
|
+
const rel = sourceFieldConfig;
|
|
89
|
+
const refParts = rel.ref.split('.');
|
|
90
|
+
if (refParts.length !== 1 || refParts[0] !== parentListName)
|
|
91
|
+
continue;
|
|
92
|
+
names.push(getSyntheticFieldName(sourceListName, sourceFieldName));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return names;
|
|
96
|
+
}
|
|
34
97
|
export async function checkAccess(accessControl, args) {
|
|
35
98
|
// No access control means deny by default
|
|
36
99
|
if (!accessControl) {
|
|
@@ -39,6 +102,27 @@ export async function checkAccess(accessControl, args) {
|
|
|
39
102
|
const result = await accessControl(args);
|
|
40
103
|
return result;
|
|
41
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Evaluate operation-level `create` access. The single evaluator shared by the
|
|
107
|
+
* write pipeline's top-level create and the nested-create path — both must
|
|
108
|
+
* reject the same way, or the two drift again (#1009).
|
|
109
|
+
*
|
|
110
|
+
* Unlike `checkAccess` (which `query`/`update`/`delete` call directly and which
|
|
111
|
+
* legitimately returns a filter for them to re-check against a row), create
|
|
112
|
+
* has no existing row and no way to test a filter against input data. A rule
|
|
113
|
+
* that returns anything other than a strict boolean — most notably a filter,
|
|
114
|
+
* which type-checks against the shared `AccessControl` signature and reads as
|
|
115
|
+
* though it scopes the create — throws `InvalidCreateAccessResultError`
|
|
116
|
+
* rather than being silently treated as an allow. See that error's doc,
|
|
117
|
+
* ADR-0022, and ADR-0030.
|
|
118
|
+
*/
|
|
119
|
+
export async function checkCreateAccess(listKey, accessControl, args) {
|
|
120
|
+
const result = await checkAccess(accessControl, args);
|
|
121
|
+
if (isBoolean(result)) {
|
|
122
|
+
return result;
|
|
123
|
+
}
|
|
124
|
+
throw new InvalidCreateAccessResultError(listKey, result);
|
|
125
|
+
}
|
|
42
126
|
export function mergeFilters(userFilter, accessFilter) {
|
|
43
127
|
if (accessFilter === false) {
|
|
44
128
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/access/engine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/access/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.test.d.ts","sourceRoot":"","sources":["../../src/access/engine.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { resolveSyntheticReverseRelation } from './engine.js';
|
|
3
|
+
// A relationship field pointing at another list.
|
|
4
|
+
function rel(ref, many = false) {
|
|
5
|
+
return { type: 'relationship', ref, many };
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* #978: a list-only `ref` (`ref: 'ListName'`, no target field) generates a
|
|
9
|
+
* synthetic back-relation on its target — `from_<SourceList>_<sourceField>`
|
|
10
|
+
* (see `getSyntheticFieldName` in fields/index.ts). `resolveSyntheticReverseRelation`
|
|
11
|
+
* is the runtime counterpart that recognises the same name and resolves it
|
|
12
|
+
* back to the declared field that owns it, so a nested write addressed to it
|
|
13
|
+
* gets the same hook pipeline a declared relationship field gets.
|
|
14
|
+
*/
|
|
15
|
+
describe('resolveSyntheticReverseRelation', () => {
|
|
16
|
+
const config = {
|
|
17
|
+
db: { provider: 'sqlite', url: 'file:./dev.db' },
|
|
18
|
+
lists: {
|
|
19
|
+
Account: { fields: { name: { type: 'text' } } },
|
|
20
|
+
ChargeRequest: {
|
|
21
|
+
fields: {
|
|
22
|
+
kind: { type: 'text' },
|
|
23
|
+
// List-only ref — no field named on Account, so a back-relation is
|
|
24
|
+
// synthesized on it as `from_ChargeRequest_account`.
|
|
25
|
+
account: rel('Account'),
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
// A bidirectional relationship — Post.author names User.posts directly,
|
|
29
|
+
// so no back-relation is synthesized anywhere for it.
|
|
30
|
+
User: { fields: { posts: rel('Post.author', true) } },
|
|
31
|
+
Post: { fields: { author: rel('User.posts') } },
|
|
32
|
+
},
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
34
|
+
};
|
|
35
|
+
it('resolves the synthetic back-relation name to its owning field', () => {
|
|
36
|
+
const result = resolveSyntheticReverseRelation('from_ChargeRequest_account', 'Account', config);
|
|
37
|
+
expect(result).not.toBeNull();
|
|
38
|
+
expect(result?.sourceListName).toBe('ChargeRequest');
|
|
39
|
+
expect(result?.sourceFieldName).toBe('account');
|
|
40
|
+
expect(result?.sourceFieldConfig.ref).toBe('Account');
|
|
41
|
+
});
|
|
42
|
+
it('returns null for a name that does not match the synthetic construction', () => {
|
|
43
|
+
expect(resolveSyntheticReverseRelation('from_ChargeRequest_amount', 'Account', config)).toBeNull();
|
|
44
|
+
expect(resolveSyntheticReverseRelation('chargeRequests', 'Account', config)).toBeNull();
|
|
45
|
+
});
|
|
46
|
+
it('returns null on the wrong parent list', () => {
|
|
47
|
+
expect(resolveSyntheticReverseRelation('from_ChargeRequest_account', 'ChargeRequest', config)).toBeNull();
|
|
48
|
+
});
|
|
49
|
+
it('returns null for a bidirectional ref — its other side is a real declared field, not a synthetic one', () => {
|
|
50
|
+
expect(resolveSyntheticReverseRelation('from_Post_author', 'User', config)).toBeNull();
|
|
51
|
+
});
|
|
52
|
+
it('returns null for a genuinely unknown key', () => {
|
|
53
|
+
expect(resolveSyntheticReverseRelation('totallyBogusKey', 'Account', config)).toBeNull();
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=engine.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.test.js","sourceRoot":"","sources":["../../src/access/engine.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAA;AAG7D,iDAAiD;AACjD,SAAS,GAAG,CAAC,GAAW,EAAE,IAAI,GAAG,KAAK;IACpC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,EAA4B,CAAA;AACtE,CAAC;AAED;;;;;;;GAOG;AACH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,MAAM,MAAM,GAAmB;QAC7B,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE;QAChD,KAAK,EAAE;YACL,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAA4B,EAAE,EAAE;YACzE,aAAa,EAAE;gBACb,MAAM,EAAE;oBACN,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAA4B;oBAChD,mEAAmE;oBACnE,qDAAqD;oBACrD,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC;iBACxB;aACF;YACD,wEAAwE;YACxE,sDAAsD;YACtD,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;YACrD,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE;SAChD;QACD,8DAA8D;KACxD,CAAA;IAER,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,MAAM,GAAG,+BAA+B,CAAC,4BAA4B,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAC/F,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAC7B,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACpD,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/C,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,CACJ,+BAA+B,CAAC,2BAA2B,EAAE,SAAS,EAAE,MAAM,CAAC,CAChF,CAAC,QAAQ,EAAE,CAAA;QACZ,MAAM,CAAC,+BAA+B,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IACzF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CACJ,+BAA+B,CAAC,4BAA4B,EAAE,eAAe,EAAE,MAAM,CAAC,CACvF,CAAC,QAAQ,EAAE,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qGAAqG,EAAE,GAAG,EAAE;QAC7G,MAAM,CAAC,+BAA+B,CAAC,kBAAkB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IACxF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,+BAA+B,CAAC,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC1F,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/access/errors.d.ts
CHANGED
|
@@ -66,6 +66,40 @@ export declare class RelationFilterAccessDeniedError extends Error {
|
|
|
66
66
|
relatedListKey: string;
|
|
67
67
|
constructor(listKey: string, fieldKey: string, relatedListKey: string);
|
|
68
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Thrown when a caller-supplied `include` names a key that resolves to
|
|
71
|
+
* neither a declared relationship, a synthetic back-relation (a list-only
|
|
72
|
+
* `ref`'s ORM-required opposite field, which no list config declares — see
|
|
73
|
+
* `resolveSyntheticReverseRelation`), nor `_count`. Before this,
|
|
74
|
+
* `buildAccessScopedInclude`'s scoping walk passed an unrecognised key
|
|
75
|
+
* straight through unscoped — the one surface among `data`/`where`/`orderBy`/
|
|
76
|
+
* `include` that failed open rather than closed (issue #1082). `sudo` never
|
|
77
|
+
* reaches this: it skips `buildAccessScopedInclude` entirely (see
|
|
78
|
+
* `resolveReadInclude` in `context/index.ts`), matching every other
|
|
79
|
+
* access-control escape hatch.
|
|
80
|
+
*/
|
|
81
|
+
export declare class UndeclaredIncludeKeyError extends Error {
|
|
82
|
+
listKey: string;
|
|
83
|
+
fieldKey: string;
|
|
84
|
+
constructor(listKey: string, fieldKey: string);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Thrown when a caller-supplied `_count.select` in `include` names a key that
|
|
88
|
+
* is not a countable to-many relation — undeclared, a scalar, a virtual, or a
|
|
89
|
+
* to-one relationship. Mirrors `UndeclaredIncludeKeyError`'s rejection for the
|
|
90
|
+
* ordinary `include` walk, for the one key shape that was allowlisted through
|
|
91
|
+
* unscoped rather than rejected (#1082's "Out of scope", closed here by
|
|
92
|
+
* #1087). A key naming a synthetic back-relation (#1082) is NOT rejected — it
|
|
93
|
+
* is a genuine countable to-many, resolved the same way the ordinary
|
|
94
|
+
* `include` walk resolves it. `sudo` never reaches this: it skips
|
|
95
|
+
* `buildAccessScopedInclude` entirely (see `resolveReadInclude` in
|
|
96
|
+
* `context/index.ts`), matching every other access-control escape hatch.
|
|
97
|
+
*/
|
|
98
|
+
export declare class UndeclaredCountKeyError extends Error {
|
|
99
|
+
listKey: string;
|
|
100
|
+
fieldKey: string;
|
|
101
|
+
constructor(listKey: string, fieldKey: string);
|
|
102
|
+
}
|
|
69
103
|
/**
|
|
70
104
|
* Thrown when a field-level access control function returns anything other
|
|
71
105
|
* than a strict `boolean`. `FieldAccessControl` is typed to return `boolean`
|
|
@@ -93,4 +127,32 @@ export declare class InvalidFieldAccessResultError extends Error {
|
|
|
93
127
|
operation: 'read' | 'create' | 'update';
|
|
94
128
|
constructor(operation: 'read' | 'create' | 'update', result: unknown);
|
|
95
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Thrown when operation-level `create` access control returns anything other
|
|
132
|
+
* than a strict `boolean`. `OperationAccess['create']` is typed as
|
|
133
|
+
* `AccessControl`, which also accepts a `PrismaFilter` — the shape
|
|
134
|
+
* `query`/`update`/`delete` legitimately use to scope which rows an
|
|
135
|
+
* operation may touch (see ADR-0001). Create has none of that to scope: there
|
|
136
|
+
* is no existing row, and — unlike update/delete, which re-check a returned
|
|
137
|
+
* filter against the target via `findFirst` — no equivalent re-check is
|
|
138
|
+
* possible against data that doesn't exist in the database yet.
|
|
139
|
+
*
|
|
140
|
+
* A filter-returning `create` rule type-checks (the shared `AccessControl`
|
|
141
|
+
* type admits it) and reads as though it scopes the create. Before this it
|
|
142
|
+
* fell through a check that only tested `=== false` and was silently treated
|
|
143
|
+
* as a full allow. This is the same defect shape ADR-0030 closed for
|
|
144
|
+
* field-level access, resolved the same way per ADR-0022 (an engine that
|
|
145
|
+
* cannot compute a scope must deny, never pass through) — a loud, distinct
|
|
146
|
+
* failure rather than a wider `null`/`[]` Silent failure, because this is a
|
|
147
|
+
* config bug, not an access denial.
|
|
148
|
+
*
|
|
149
|
+
* Deliberately does not expose the offending result as a public field, for
|
|
150
|
+
* the same reason as `InvalidFieldAccessResultError`: there is no
|
|
151
|
+
* concretely-typed shape to give it, and the root CLAUDE.md forbids exposing
|
|
152
|
+
* `unknown`/`any` as part of a package's external API.
|
|
153
|
+
*/
|
|
154
|
+
export declare class InvalidCreateAccessResultError extends Error {
|
|
155
|
+
listKey: string;
|
|
156
|
+
constructor(listKey: string, result: unknown);
|
|
157
|
+
}
|
|
96
158
|
//# sourceMappingURL=errors.d.ts.map
|