@venizia/ignis 0.1.1-6 → 0.1.1-8
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/dist/base/repositories/common/types.d.ts +42 -13
- package/dist/base/repositories/common/types.d.ts.map +1 -1
- package/dist/base/repositories/core/abstract.d.ts +38 -13
- package/dist/base/repositories/core/abstract.d.ts.map +1 -1
- package/dist/base/repositories/core/abstract.js +71 -0
- package/dist/base/repositories/core/abstract.js.map +1 -1
- package/dist/components/auth/authorize/adapters/base-filtered.d.ts +2 -2
- package/dist/components/auth/authorize/adapters/base-filtered.js +3 -3
- package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.d.ts +1 -1
- package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.js +1 -1
- package/dist/components/auth/authorize/builders/grant.builder.d.ts +4 -2
- package/dist/components/auth/authorize/builders/grant.builder.d.ts.map +1 -1
- package/dist/components/auth/authorize/builders/grant.builder.js.map +1 -1
- package/dist/components/auth/authorize/builders/policy.builder.d.ts +1 -1
- package/dist/components/auth/authorize/builders/policy.builder.js +1 -1
- package/dist/components/auth/authorize/common/constants.d.ts +6 -6
- package/dist/components/auth/authorize/common/constants.js +6 -6
- package/dist/components/auth/authorize/enforcers/casbin.enforcer.d.ts +3 -6
- package/dist/components/auth/authorize/enforcers/casbin.enforcer.d.ts.map +1 -1
- package/dist/components/auth/authorize/enforcers/casbin.enforcer.js +20 -31
- package/dist/components/auth/authorize/enforcers/casbin.enforcer.js.map +1 -1
- package/dist/components/auth/authorize/enforcers/enforcer-registry.d.ts +1 -1
- package/dist/components/auth/authorize/enforcers/enforcer-registry.js +2 -2
- package/dist/components/auth/authorize/enforcers/resource-role-manager.d.ts +3 -4
- package/dist/components/auth/authorize/enforcers/resource-role-manager.d.ts.map +1 -1
- package/dist/components/auth/authorize/enforcers/resource-role-manager.js +3 -4
- package/dist/components/auth/authorize/enforcers/resource-role-manager.js.map +1 -1
- package/dist/components/auth/authorize/providers/authorization.provider.d.ts.map +1 -1
- package/dist/components/auth/authorize/providers/authorization.provider.js +2 -3
- package/dist/components/auth/authorize/providers/authorization.provider.js.map +1 -1
- package/dist/connectors/postgres/repositories/core/readable.d.ts +6 -13
- package/dist/connectors/postgres/repositories/core/readable.d.ts.map +1 -1
- package/dist/connectors/postgres/repositories/core/readable.js +8 -0
- package/dist/connectors/postgres/repositories/core/readable.js.map +1 -1
- package/dist/connectors/search/repositories/core/readable.d.ts +6 -13
- package/dist/connectors/search/repositories/core/readable.d.ts.map +1 -1
- package/dist/connectors/search/repositories/core/readable.js +14 -1
- package/dist/connectors/search/repositories/core/readable.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AbstractDataSource, ITransaction } from '../../../base/datasources';
|
|
2
2
|
import type { AbstractEntity, IdType } from '../../../base/models';
|
|
3
3
|
import { z } from '@hono/zod-openapi';
|
|
4
|
-
import type { TLogLevel, TNullable } from '@venizia/ignis-helpers';
|
|
4
|
+
import type { IRetryBackoffOptions, TLogLevel, TNullable } from '@venizia/ignis-helpers';
|
|
5
5
|
import type { Column, SQL } from 'drizzle-orm';
|
|
6
6
|
import type { TFilter, TWhere } from '../query-schemas';
|
|
7
7
|
import type { TLockStrength } from './constants';
|
|
@@ -71,6 +71,42 @@ export interface IExtraOptions extends IWithTransaction {
|
|
|
71
71
|
/** Row-level locking. Requires transaction. Incompatible with include/fields (Query API). */
|
|
72
72
|
lock?: TLockOptions;
|
|
73
73
|
}
|
|
74
|
+
/** Read-after-write retry for read verbs behind a replicated pool. The read is re-executed while
|
|
75
|
+
* `until(result)` returns false; on exhaustion the last result is returned as-is. */
|
|
76
|
+
export interface IReadRetryOptions<TResult> {
|
|
77
|
+
/** Default 3. */
|
|
78
|
+
maxAttempts?: number;
|
|
79
|
+
/** Total budget across attempts AND sleeps. Default: unlimited. */
|
|
80
|
+
maxTotalMs?: number;
|
|
81
|
+
/** Aborts between attempts and during backoff sleeps - pass the request signal so a cancelled
|
|
82
|
+
* request stops retrying instead of finishing the loop on a connection nobody is reading. */
|
|
83
|
+
signal?: AbortSignal;
|
|
84
|
+
/** Default: EXPONENTIAL from 50ms, capped at 500ms, EQUAL jitter - tuned for replica lag. */
|
|
85
|
+
backoff?: IRetryBackoffOptions;
|
|
86
|
+
/** Retry while false. Default per verb: findOne/findById non-null, find non-empty. */
|
|
87
|
+
until?: (result: TResult) => boolean;
|
|
88
|
+
}
|
|
89
|
+
/** Intersected into READ verb signatures only. A write verb's options type has no `retry`, so an
|
|
90
|
+
* inline `{ retry }` is rejected at compile time; a pre-built object carrying it is inert, never
|
|
91
|
+
* read. */
|
|
92
|
+
export interface IWithReadRetry<TResult> {
|
|
93
|
+
retry?: IReadRetryOptions<TResult>;
|
|
94
|
+
}
|
|
95
|
+
/** The `shouldQueryRange: true` result envelope. */
|
|
96
|
+
export type TDataWithRange<R> = {
|
|
97
|
+
data: Array<R>;
|
|
98
|
+
range: TDataRange;
|
|
99
|
+
};
|
|
100
|
+
/** Options for `find` returning a plain array - the retry predicate sees `Array<R>`. */
|
|
101
|
+
export type TFindOptions<TOptions extends IExtraOptions, R> = TOptions & {
|
|
102
|
+
shouldQueryRange?: false;
|
|
103
|
+
} & IWithReadRetry<Array<R>>;
|
|
104
|
+
/** Options for `find` with the range envelope - the retry predicate sees `{ data, range }`. */
|
|
105
|
+
export type TFindRangeOptions<TOptions extends IExtraOptions, R> = TOptions & {
|
|
106
|
+
shouldQueryRange: true;
|
|
107
|
+
} & IWithReadRetry<TDataWithRange<R>>;
|
|
108
|
+
/** Options for `findOne`/`findById` - the retry predicate sees `TNullable<R>`. */
|
|
109
|
+
export type TFindOneOptions<TOptions extends IExtraOptions, R> = TOptions & IWithReadRetry<TNullable<R>>;
|
|
74
110
|
/** Base repository interface shared by every engine. Engine-specific accessors (postgres's
|
|
75
111
|
* `getEntitySchema()`/`getConnector()`) stay on the connector's own repository tier. */
|
|
76
112
|
export interface IRepository {
|
|
@@ -90,27 +126,20 @@ export interface IReadableRepository<TDataObject extends object = object, ExtraO
|
|
|
90
126
|
}): Promise<boolean>;
|
|
91
127
|
find<R = TDataObject>(opts: {
|
|
92
128
|
filter: TFilter<TDataObject>;
|
|
93
|
-
options: ExtraOptions
|
|
94
|
-
|
|
95
|
-
};
|
|
96
|
-
}): Promise<{
|
|
97
|
-
data: Array<R>;
|
|
98
|
-
range: TDataRange;
|
|
99
|
-
}>;
|
|
129
|
+
options: TFindRangeOptions<ExtraOptions, R>;
|
|
130
|
+
}): Promise<TDataWithRange<R>>;
|
|
100
131
|
find<R = TDataObject>(opts: {
|
|
101
132
|
filter: TFilter<TDataObject>;
|
|
102
|
-
options?: ExtraOptions
|
|
103
|
-
shouldQueryRange?: false;
|
|
104
|
-
};
|
|
133
|
+
options?: TFindOptions<ExtraOptions, R>;
|
|
105
134
|
}): Promise<Array<R>>;
|
|
106
135
|
findOne<R = TDataObject>(opts: {
|
|
107
136
|
filter: TFilter<TDataObject>;
|
|
108
|
-
options?: ExtraOptions
|
|
137
|
+
options?: TFindOneOptions<ExtraOptions, R>;
|
|
109
138
|
}): Promise<TNullable<R>>;
|
|
110
139
|
findById<R = TDataObject>(opts: {
|
|
111
140
|
id: IdType;
|
|
112
141
|
filter?: Omit<TFilter<TDataObject>, 'where'>;
|
|
113
|
-
options?: ExtraOptions
|
|
142
|
+
options?: TFindOneOptions<ExtraOptions, R>;
|
|
114
143
|
}): Promise<TNullable<R>>;
|
|
115
144
|
}
|
|
116
145
|
/** Interface for create operations. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/common/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import type { AbstractEntity, IdType } from '../../../base/models';
|
|
|
3
3
|
import type { IModelMetadata } from '../../../helpers/inversion';
|
|
4
4
|
import type { TClass, TNullable } from '@venizia/ignis-helpers';
|
|
5
5
|
import { BaseHelper } from '@venizia/ignis-helpers';
|
|
6
|
-
import type { IExtraOptions, IPersistableRepository, TCount,
|
|
6
|
+
import type { IExtraOptions, IPersistableRepository, IWithReadRetry, TCount, TDataWithRange, TFindOneOptions, TFindOptions, TFindRangeOptions, TRepositoryOperationScope } from '../common';
|
|
7
7
|
import type { TFilter, TWhere } from '../query-schemas';
|
|
8
8
|
/** Engine-neutral repository plumbing - lazy dataSource/entity resolution, class-keyed `@model`
|
|
9
9
|
* settings, operation scope. `TOptions` defaults to `IExtraOptions` so connectors can narrow it while staying assignable to this base. */
|
|
@@ -42,6 +42,38 @@ export declare abstract class AbstractRepository<TDataObject extends object, TPe
|
|
|
42
42
|
protected resolveEntity(): AbstractEntity;
|
|
43
43
|
/** Rejects a verb the current operation scope does not permit. */
|
|
44
44
|
protected denyOperation(methodName: string): never;
|
|
45
|
+
/** Shared retry orchestration for read verbs. No `retry` option: zero overhead, today's exact
|
|
46
|
+
* path. Inside a transaction: skipped - the pool routes transactions to the primary, so there
|
|
47
|
+
* is no replica lag to wait out. */
|
|
48
|
+
protected executeReadWithRetry<TResult>(opts: {
|
|
49
|
+
operation: string;
|
|
50
|
+
options: IExtraOptions & IWithReadRetry<TResult>;
|
|
51
|
+
defaultUntil: (result: TResult) => boolean;
|
|
52
|
+
execution: () => Promise<TResult>;
|
|
53
|
+
}): Promise<TResult>;
|
|
54
|
+
/** A copy of `options` without `retry`, so re-entering a read verb takes its non-retry path -
|
|
55
|
+
* what keeps the retry recursion single-depth. Copy-then-delete rather than a rest-destructure
|
|
56
|
+
* (lint rejects the unused rest sibling) or `lodash/omit` (its `Omit<>` return type is not
|
|
57
|
+
* assignable back to the generic `TOptions`). */
|
|
58
|
+
private omitReadRetry;
|
|
59
|
+
/** `find`, re-executed until the retry predicate holds. Connectors dispatch here from `find`
|
|
60
|
+
* when `options.retry` is set. */
|
|
61
|
+
protected findUntil<R = TDataObject>(opts: {
|
|
62
|
+
filter: TFilter<TDataObject>;
|
|
63
|
+
options: TFindOptions<TOptions, R>;
|
|
64
|
+
}): Promise<Array<R>>;
|
|
65
|
+
/** `find` with the range envelope, re-executed until the retry predicate holds. Split from
|
|
66
|
+
* `findUntil` so each result shape is checked against its own `find` overload. */
|
|
67
|
+
protected findRangeUntil<R = TDataObject>(opts: {
|
|
68
|
+
filter: TFilter<TDataObject>;
|
|
69
|
+
options: TFindRangeOptions<TOptions, R>;
|
|
70
|
+
}): Promise<TDataWithRange<R>>;
|
|
71
|
+
/** `findOne`, re-executed until the retry predicate holds. Also serves `findById` via its
|
|
72
|
+
* findOne delegation. */
|
|
73
|
+
protected findOneUntil<R = TDataObject>(opts: {
|
|
74
|
+
filter: TFilter<TDataObject>;
|
|
75
|
+
options: TFindOneOptions<TOptions, R>;
|
|
76
|
+
}): Promise<TNullable<R>>;
|
|
45
77
|
abstract count(opts: {
|
|
46
78
|
where: TWhere<TDataObject>;
|
|
47
79
|
options?: TOptions;
|
|
@@ -52,27 +84,20 @@ export declare abstract class AbstractRepository<TDataObject extends object, TPe
|
|
|
52
84
|
}): Promise<boolean>;
|
|
53
85
|
abstract find<R = TDataObject>(opts: {
|
|
54
86
|
filter: TFilter<TDataObject>;
|
|
55
|
-
options: TOptions
|
|
56
|
-
|
|
57
|
-
};
|
|
58
|
-
}): Promise<{
|
|
59
|
-
data: Array<R>;
|
|
60
|
-
range: TDataRange;
|
|
61
|
-
}>;
|
|
87
|
+
options: TFindRangeOptions<TOptions, R>;
|
|
88
|
+
}): Promise<TDataWithRange<R>>;
|
|
62
89
|
abstract find<R = TDataObject>(opts: {
|
|
63
90
|
filter: TFilter<TDataObject>;
|
|
64
|
-
options?: TOptions
|
|
65
|
-
shouldQueryRange?: false;
|
|
66
|
-
};
|
|
91
|
+
options?: TFindOptions<TOptions, R>;
|
|
67
92
|
}): Promise<R[]>;
|
|
68
93
|
abstract findOne<R = TDataObject>(opts: {
|
|
69
94
|
filter: TFilter<TDataObject>;
|
|
70
|
-
options?: TOptions
|
|
95
|
+
options?: TFindOneOptions<TOptions, R>;
|
|
71
96
|
}): Promise<TNullable<R>>;
|
|
72
97
|
abstract findById<R = TDataObject>(opts: {
|
|
73
98
|
id: IdType;
|
|
74
99
|
filter?: Omit<TFilter<TDataObject>, 'where'>;
|
|
75
|
-
options?: TOptions
|
|
100
|
+
options?: TFindOneOptions<TOptions, R>;
|
|
76
101
|
}): Promise<TNullable<R>>;
|
|
77
102
|
abstract create(opts: {
|
|
78
103
|
data: TPersistObject;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -93,6 +93,77 @@ class AbstractRepository extends ignis_helpers_1.BaseHelper {
|
|
|
93
93
|
message: `[${methodName}] Repository operation is NOT ALLOWED | scope: ${this.operationScope}`,
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
|
+
/** Shared retry orchestration for read verbs. No `retry` option: zero overhead, today's exact
|
|
97
|
+
* path. Inside a transaction: skipped - the pool routes transactions to the primary, so there
|
|
98
|
+
* is no replica lag to wait out. */
|
|
99
|
+
executeReadWithRetry(opts) {
|
|
100
|
+
const { operation, options, defaultUntil, execution } = opts;
|
|
101
|
+
if (!options.retry) {
|
|
102
|
+
return execution();
|
|
103
|
+
}
|
|
104
|
+
if (options.transaction) {
|
|
105
|
+
this.logger.for(operation).debug('Read retry skipped inside transaction');
|
|
106
|
+
return execution();
|
|
107
|
+
}
|
|
108
|
+
const { maxAttempts, maxTotalMs, signal, backoff, until } = options.retry;
|
|
109
|
+
return (0, ignis_helpers_1.executeWithRetryUntil)({
|
|
110
|
+
operation: [this.constructor.name, operation].join('.'),
|
|
111
|
+
execution,
|
|
112
|
+
until: until ?? defaultUntil,
|
|
113
|
+
maxAttempts,
|
|
114
|
+
maxTotalMs,
|
|
115
|
+
signal,
|
|
116
|
+
backoff: backoff ?? {
|
|
117
|
+
strategy: ignis_helpers_1.RetryBackoffStrategies.EXPONENTIAL,
|
|
118
|
+
initialDelayMs: 50,
|
|
119
|
+
maxDelayMs: 500,
|
|
120
|
+
jitter: ignis_helpers_1.RetryJitterModes.EQUAL,
|
|
121
|
+
},
|
|
122
|
+
logger: this.logger,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
/** A copy of `options` without `retry`, so re-entering a read verb takes its non-retry path -
|
|
126
|
+
* what keeps the retry recursion single-depth. Copy-then-delete rather than a rest-destructure
|
|
127
|
+
* (lint rejects the unused rest sibling) or `lodash/omit` (its `Omit<>` return type is not
|
|
128
|
+
* assignable back to the generic `TOptions`). */
|
|
129
|
+
omitReadRetry(options) {
|
|
130
|
+
const rest = { ...options };
|
|
131
|
+
delete rest.retry;
|
|
132
|
+
return rest;
|
|
133
|
+
}
|
|
134
|
+
/** `find`, re-executed until the retry predicate holds. Connectors dispatch here from `find`
|
|
135
|
+
* when `options.retry` is set. */
|
|
136
|
+
findUntil(opts) {
|
|
137
|
+
const options = this.omitReadRetry(opts.options);
|
|
138
|
+
return this.executeReadWithRetry({
|
|
139
|
+
operation: 'find',
|
|
140
|
+
options: opts.options,
|
|
141
|
+
defaultUntil: result => result.length > 0,
|
|
142
|
+
execution: () => this.find({ filter: opts.filter, options }),
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
/** `find` with the range envelope, re-executed until the retry predicate holds. Split from
|
|
146
|
+
* `findUntil` so each result shape is checked against its own `find` overload. */
|
|
147
|
+
findRangeUntil(opts) {
|
|
148
|
+
const options = this.omitReadRetry(opts.options);
|
|
149
|
+
return this.executeReadWithRetry({
|
|
150
|
+
operation: 'find',
|
|
151
|
+
options: opts.options,
|
|
152
|
+
defaultUntil: result => result.data.length > 0,
|
|
153
|
+
execution: () => this.find({ filter: opts.filter, options }),
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
/** `findOne`, re-executed until the retry predicate holds. Also serves `findById` via its
|
|
157
|
+
* findOne delegation. */
|
|
158
|
+
findOneUntil(opts) {
|
|
159
|
+
const options = this.omitReadRetry(opts.options);
|
|
160
|
+
return this.executeReadWithRetry({
|
|
161
|
+
operation: 'findOne',
|
|
162
|
+
options: opts.options,
|
|
163
|
+
defaultUntil: result => result !== null && result !== undefined,
|
|
164
|
+
execution: () => this.findOne({ filter: opts.filter, options }),
|
|
165
|
+
});
|
|
166
|
+
}
|
|
96
167
|
updateBy(opts) {
|
|
97
168
|
const { data, where, options } = opts;
|
|
98
169
|
if (options?.shouldReturn === false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":";;;AAGA,mDAAuD;AAEvD,
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import { type FilteredAdapter, type Model } from 'casbin';
|
|
|
3
3
|
import type { SQL } from 'drizzle-orm';
|
|
4
4
|
import type { ICasbinPolicyFilter, ICasbinPolicySource, TCasbinPolicyConnector } from './types';
|
|
5
5
|
/**
|
|
6
|
-
* Read-only base for casbin FilteredAdapters backed by a datasource
|
|
7
|
-
* and no-op write methods; subclasses
|
|
6
|
+
* Read-only base for casbin FilteredAdapters backed by a datasource - owns connector plumbing
|
|
7
|
+
* and no-op write methods; subclasses implement {@link loadFilteredPolicy} per principal.
|
|
8
8
|
*/
|
|
9
9
|
export declare abstract class BaseFilteredAdapter<TFilter = ICasbinPolicyFilter> extends BaseHelper implements FilteredAdapter {
|
|
10
10
|
protected readonly dataSource: ICasbinPolicySource;
|
|
@@ -4,8 +4,8 @@ exports.BaseFilteredAdapter = void 0;
|
|
|
4
4
|
const utilities_1 = require("../../../../utilities");
|
|
5
5
|
const ignis_helpers_1 = require("@venizia/ignis-helpers");
|
|
6
6
|
/**
|
|
7
|
-
* Read-only base for casbin FilteredAdapters backed by a datasource
|
|
8
|
-
* and no-op write methods; subclasses
|
|
7
|
+
* Read-only base for casbin FilteredAdapters backed by a datasource - owns connector plumbing
|
|
8
|
+
* and no-op write methods; subclasses implement {@link loadFilteredPolicy} per principal.
|
|
9
9
|
*/
|
|
10
10
|
class BaseFilteredAdapter extends ignis_helpers_1.BaseHelper {
|
|
11
11
|
constructor(opts) {
|
|
@@ -33,7 +33,7 @@ class BaseFilteredAdapter extends ignis_helpers_1.BaseHelper {
|
|
|
33
33
|
isFiltered() {
|
|
34
34
|
return true;
|
|
35
35
|
}
|
|
36
|
-
// Read-only adapter
|
|
36
|
+
// Read-only adapter - write methods are intentional no-ops.
|
|
37
37
|
async loadPolicy() { }
|
|
38
38
|
async savePolicy() {
|
|
39
39
|
return true;
|
|
@@ -73,7 +73,7 @@ export declare class ScopedCasbinAdapter extends BaseFilteredAdapter<IScopedCasb
|
|
|
73
73
|
}): SQL;
|
|
74
74
|
/**
|
|
75
75
|
* `AND <alias>.<col> IS NULL` when soft-delete is on, else empty. Alias is emitted raw (unquoted) to
|
|
76
|
-
* match the unquoted FROM alias
|
|
76
|
+
* match the unquoted FROM alias - quoting it would fold to a different case and break the join.
|
|
77
77
|
*/
|
|
78
78
|
protected softDeleteClause(opts: {
|
|
79
79
|
alias: string;
|
|
@@ -97,7 +97,7 @@ class ScopedCasbinAdapter extends base_filtered_1.BaseFilteredAdapter {
|
|
|
97
97
|
}
|
|
98
98
|
/**
|
|
99
99
|
* `AND <alias>.<col> IS NULL` when soft-delete is on, else empty. Alias is emitted raw (unquoted) to
|
|
100
|
-
* match the unquoted FROM alias
|
|
100
|
+
* match the unquoted FROM alias - quoting it would fold to a different case and break the join.
|
|
101
101
|
*/
|
|
102
102
|
softDeleteClause(opts) {
|
|
103
103
|
const sd = this.entities.softDelete;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IdType } from '../../../../base';
|
|
2
2
|
import { BaseHelper, type TNullable } from '@venizia/ignis-helpers';
|
|
3
|
-
import { type TAuthorizationDecision, type TGrantIntent, type TPlannedGrantRow } from '../common';
|
|
3
|
+
import { type TAuthorizationAction, type TAuthorizationDecision, type TGrantIntent, type TPlannedGrantRow } from '../common';
|
|
4
4
|
import { type TPolicyDomainInput } from './policy.builder';
|
|
5
5
|
export declare class GrantBuilder extends BaseHelper {
|
|
6
6
|
private static instance;
|
|
@@ -40,7 +40,9 @@ export declare class GrantBuilder extends BaseHelper {
|
|
|
40
40
|
/**
|
|
41
41
|
* Actions a tier confers, derived from LATTICE rather than hardcoded so the two cannot drift.
|
|
42
42
|
*/
|
|
43
|
-
|
|
43
|
+
actionsCoveredBy(opts: {
|
|
44
|
+
tier: TAuthorizationAction;
|
|
45
|
+
}): Set<string>;
|
|
44
46
|
/**
|
|
45
47
|
* Decide which rows express an intent. A custom row is a last resort: as much of the selection as
|
|
46
48
|
* possible collapses into tier grants first. `exact` disables collapsing when the caller genuinely
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grant.builder.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/builders/grant.builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,UAAU,EAAY,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"grant.builder.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/builders/grant.builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,UAAU,EAAY,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAA8B,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEvF,qBAAa,YAAa,SAAQ,UAAU;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IAEtC,8FAA8F;IAC9F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAKpC;IAEH,oGAAoG;IACpG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAIlC;;IAMF,MAAM,CAAC,WAAW;IAQlB,cAAc,CAAC,YAAY,GAAG,OAAO,EAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE;IAevE;;;OAGG;IACH,wBAAwB,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI;IA6B/E;;;OAGG;IACH,sBAAsB,CAAC,IAAI,EAAE;QAC3B,GAAG,EAAE,MAAM,EAAE,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACrD,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;IAwB1C;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,oBAAoB,CAAA;KAAE,GAAG,GAAG,CAAC,MAAM,CAAC;IAkBnE;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE;QACd,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACtC,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QACxD,MAAM,EAAE,YAAY,CAAC;QACrB,OAAO,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClF,MAAM,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACvC,MAAM,CAAC,EAAE,sBAAsB,CAAC;QAChC,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GAAG,gBAAgB,EAAE;CA6IvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grant.builder.js","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/builders/grant.builder.ts"],"names":[],"mappings":";;;AACA,0DAA8E;AAC9E,sCAOmB;AACnB,qDAAuF;AAEvF,MAAa,YAAa,SAAQ,0BAAU;IAG1C,8FAA8F;aACtE,oBAAe,GAAG,IAAI,GAAG,CAAS;QACxD,6BAAoB,CAAC,IAAI;QACzB,6BAAoB,CAAC,KAAK;QAC1B,6BAAoB,CAAC,OAAO;QAC5B,6BAAoB,CAAC,MAAM;KAC5B,CAAC,CAAC;IAEH,oGAAoG;aAC5E,iBAAY,GAAwC;QAC1E,6BAAoB,CAAC,IAAI;QACzB,6BAAoB,CAAC,KAAK;QAC1B,6BAAoB,CAAC,OAAO;KAC7B,CAAC;IAEF;QACE,KAAK,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7C,CAAC;QAED,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,cAAc,CAAyB,IAAgC;QACrE,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM;iBACR,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;iBAC7B,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,wBAAwB,CAAC,IAA2B;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9E,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAI,OAA6B,CAAC,GAAG,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,IAItB;QACC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,SAAS;YACX,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;
|
|
1
|
+
{"version":3,"file":"grant.builder.js","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/builders/grant.builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,7 +87,7 @@ export declare class AuthorizationPolicyBuilder {
|
|
|
87
87
|
targetId: IdType;
|
|
88
88
|
domain: TNullable<string>;
|
|
89
89
|
};
|
|
90
|
-
/** A user joins a domain (casbin `g2`)
|
|
90
|
+
/** A user joins a domain (casbin `g2`) - backs the `ANY_MEMBER` grant scope. */
|
|
91
91
|
static joinDomain(opts: {
|
|
92
92
|
user: {
|
|
93
93
|
type: string;
|
|
@@ -61,7 +61,7 @@ class AuthorizationPolicyBuilder {
|
|
|
61
61
|
domain: AuthorizationPolicyBuilder.serializeDomain(opts.domain),
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
|
-
/** A user joins a domain (casbin `g2`)
|
|
64
|
+
/** A user joins a domain (casbin `g2`) - backs the `ANY_MEMBER` grant scope. */
|
|
65
65
|
static joinDomain(opts) {
|
|
66
66
|
return {
|
|
67
67
|
variant: constants_1.AuthorizationPolicyVariants.JOIN_DOMAIN.action,
|
|
@@ -82,7 +82,7 @@ export type TCasbinDomainMatchingFunction = TConstValue<typeof CasbinDomainMatch
|
|
|
82
82
|
export declare class AuthorizationDomainScopes {
|
|
83
83
|
/** Grant applies in EVERY domain the subject is a member of (checked via join_domain / g2). */
|
|
84
84
|
static readonly ANY_MEMBER = "ANY_MEMBER";
|
|
85
|
-
/** Grant applies system-wide, bypassing membership
|
|
85
|
+
/** Grant applies system-wide, bypassing membership - super-admin only. */
|
|
86
86
|
static readonly SYSTEM_WIDE = "SYSTEM_WIDE";
|
|
87
87
|
static readonly SCHEME_SET: Set<string>;
|
|
88
88
|
static isValid(input: string): boolean;
|
|
@@ -96,15 +96,15 @@ export declare class CasbinRuleVariants {
|
|
|
96
96
|
/** Permission policy line. */
|
|
97
97
|
static readonly P = "p";
|
|
98
98
|
/** Numbered in request-tuple order (sub -> dom -> obj -> act): g (sub), g2/g3 (dom), g4 (obj), g5 (act). */
|
|
99
|
-
/** Grouping #1
|
|
99
|
+
/** Grouping #1 - role membership + role inheritance (user→role, role→role). The `sub` axis. */
|
|
100
100
|
static readonly G = "g";
|
|
101
|
-
/** Grouping #2
|
|
101
|
+
/** Grouping #2 - user→domain membership (join_domain). The `dom` axis (membership). */
|
|
102
102
|
static readonly G2 = "g2";
|
|
103
|
-
/** Grouping #3
|
|
103
|
+
/** Grouping #3 - domain hierarchy. The `dom` axis (nesting). */
|
|
104
104
|
static readonly G3 = "g3";
|
|
105
|
-
/** Grouping #4
|
|
105
|
+
/** Grouping #4 - resource hierarchy. The `obj` axis. */
|
|
106
106
|
static readonly G4 = "g4";
|
|
107
|
-
/** Grouping #5
|
|
107
|
+
/** Grouping #5 - action hierarchy. The `act` axis. */
|
|
108
108
|
static readonly G5 = "g5";
|
|
109
109
|
}
|
|
110
110
|
export type TCasbinRuleVariant = TConstValue<typeof CasbinRuleVariants>;
|
|
@@ -155,7 +155,7 @@ exports.CasbinDomainMatchingFunctions = CasbinDomainMatchingFunctions;
|
|
|
155
155
|
class AuthorizationDomainScopes {
|
|
156
156
|
/** Grant applies in EVERY domain the subject is a member of (checked via join_domain / g2). */
|
|
157
157
|
static { this.ANY_MEMBER = 'ANY_MEMBER'; }
|
|
158
|
-
/** Grant applies system-wide, bypassing membership
|
|
158
|
+
/** Grant applies system-wide, bypassing membership - super-admin only. */
|
|
159
159
|
static { this.SYSTEM_WIDE = 'SYSTEM_WIDE'; }
|
|
160
160
|
static { this.SCHEME_SET = new Set([this.ANY_MEMBER, this.SYSTEM_WIDE]); }
|
|
161
161
|
static isValid(input) {
|
|
@@ -171,15 +171,15 @@ class CasbinRuleVariants {
|
|
|
171
171
|
/** Permission policy line. */
|
|
172
172
|
static { this.P = 'p'; }
|
|
173
173
|
/** Numbered in request-tuple order (sub -> dom -> obj -> act): g (sub), g2/g3 (dom), g4 (obj), g5 (act). */
|
|
174
|
-
/** Grouping #1
|
|
174
|
+
/** Grouping #1 - role membership + role inheritance (user→role, role→role). The `sub` axis. */
|
|
175
175
|
static { this.G = 'g'; }
|
|
176
|
-
/** Grouping #2
|
|
176
|
+
/** Grouping #2 - user→domain membership (join_domain). The `dom` axis (membership). */
|
|
177
177
|
static { this.G2 = 'g2'; }
|
|
178
|
-
/** Grouping #3
|
|
178
|
+
/** Grouping #3 - domain hierarchy. The `dom` axis (nesting). */
|
|
179
179
|
static { this.G3 = 'g3'; }
|
|
180
|
-
/** Grouping #4
|
|
180
|
+
/** Grouping #4 - resource hierarchy. The `obj` axis. */
|
|
181
181
|
static { this.G4 = 'g4'; }
|
|
182
|
-
/** Grouping #5
|
|
182
|
+
/** Grouping #5 - action hierarchy. The `act` axis. */
|
|
183
183
|
static { this.G5 = 'g5'; }
|
|
184
184
|
}
|
|
185
185
|
exports.CasbinRuleVariants = CasbinRuleVariants;
|
|
@@ -3,7 +3,7 @@ import { BaseHelper, TNullable } from '@venizia/ignis-helpers';
|
|
|
3
3
|
import type { Enforcer as CasbinEnforcerType } from 'casbin';
|
|
4
4
|
import { Env } from 'hono';
|
|
5
5
|
import { IAuthorizationEnforcer, IAuthorizationUser, ICasbinEnforcerCachedRedis, ICasbinEnforcerOptions, ICasbinRules, type IAuthorizationRequest, type TAuthorizationDecision, type TCasbinDomainMatchingFunction } from '../common';
|
|
6
|
-
/**
|
|
6
|
+
/** Payload shape for the scoped/custom path, matching defaultScopedPayloadFn(). */
|
|
7
7
|
type TNormalizePayloadFn<E extends Env, TAction, TResource> = (opts: {
|
|
8
8
|
user: IAuthorizationUser;
|
|
9
9
|
action: TAction;
|
|
@@ -42,10 +42,7 @@ export declare class CasbinAuthorizationEnforcer<E extends Env = Env, TAction ex
|
|
|
42
42
|
request: IAuthorizationRequest<TAction, TResource>;
|
|
43
43
|
context: TContext<E, string>;
|
|
44
44
|
}): Promise<TAuthorizationDecision>;
|
|
45
|
-
/**
|
|
46
|
-
* Runs the matcher and, on DENY, logs the deciding policy rule. enforceExSync returns
|
|
47
|
-
* `[isAllowed, matchedPolicy]`, where matchedPolicy is `[]` when nothing matched (default-deny).
|
|
48
|
-
*/
|
|
45
|
+
/** On DENY, logs the deciding policy rule; matchedPolicy is `[]` when nothing matched (default-deny). */
|
|
49
46
|
protected enforceWithExplain(opts: {
|
|
50
47
|
enforcer: CasbinEnforcerType;
|
|
51
48
|
vals: string[];
|
|
@@ -61,7 +58,7 @@ export declare class CasbinAuthorizationEnforcer<E extends Env = Env, TAction ex
|
|
|
61
58
|
cacheKey: string;
|
|
62
59
|
lineCount: number;
|
|
63
60
|
}>;
|
|
64
|
-
/** Compute the user's cache key and reject an empty result
|
|
61
|
+
/** Compute the user's cache key and reject an empty result - consistent with the read path. */
|
|
65
62
|
protected resolveCacheKey(opts: {
|
|
66
63
|
user: IAuthorizationUser;
|
|
67
64
|
cached: ICasbinEnforcerCachedRedis & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"casbin.enforcer.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/enforcers/casbin.enforcer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAkC,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,KAAK,EAAE,QAAQ,IAAI,kBAAkB,EAA8B,MAAM,QAAQ,CAAC;AACzF,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAE3B,OAAO,EASL,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,YAAY,EACZ,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EACnC,MAAM,WAAW,CAAC;AAGnB,
|
|
1
|
+
{"version":3,"file":"casbin.enforcer.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/enforcers/casbin.enforcer.ts"],"names":[],"mappings":"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"}
|