@nodii/approval 0.1.13 → 0.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/dist/errors.d.ts +7 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +10 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +21 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +30 -1
- package/dist/init.js.map +1 -1
- package/dist/kinds.d.ts +25 -0
- package/dist/kinds.d.ts.map +1 -1
- package/dist/kinds.js +43 -0
- package/dist/kinds.js.map +1 -1
- package/dist/policy-client.d.ts +70 -0
- package/dist/policy-client.d.ts.map +1 -0
- package/dist/policy-client.js +157 -0
- package/dist/policy-client.js.map +1 -0
- package/dist/request.d.ts.map +1 -1
- package/dist/request.js +180 -8
- package/dist/request.js.map +1 -1
- package/dist/types.d.ts +32 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
package/dist/errors.d.ts
CHANGED
|
@@ -44,6 +44,13 @@ export declare class DeferredActionNotFound extends ApprovalError {
|
|
|
44
44
|
readonly name = "DeferredActionNotFound";
|
|
45
45
|
constructor(taskId: string);
|
|
46
46
|
}
|
|
47
|
+
export declare class UndeclaredRequesterKind extends ApprovalError {
|
|
48
|
+
readonly kind: string;
|
|
49
|
+
readonly name = "UndeclaredRequesterKind";
|
|
50
|
+
/** Stable wire code mapped by downstream interceptors / error middleware. */
|
|
51
|
+
static readonly code = "UNDECLARED_REQUESTER_KIND";
|
|
52
|
+
constructor(kind: string, ownedKinds: readonly string[], requesterKinds: readonly string[]);
|
|
53
|
+
}
|
|
47
54
|
export declare class TenantPolicyKindUnknown extends ApprovalError {
|
|
48
55
|
readonly name = "TenantPolicyKindUnknown";
|
|
49
56
|
constructor(kind: string);
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAMA,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAkB,IAAI,EAAE,MAAM,CAAmB;CAClD;AAED,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,SAAkB,IAAI,4BAA4B;;CAOnD;AAED,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,SAAkB,IAAI,yBAAyB;gBACnC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE;CAKxD;AAED,qBAAa,0BAA2B,SAAQ,aAAa;IAC3D,SAAkB,IAAI,gCAAgC;gBAC1C,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE;CAKxD;AAED,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,SAAkB,IAAI,0BAA0B;gBACpC,IAAI,EAAE,MAAM;CAKzB;AAED,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,SAAkB,IAAI,4BAA4B;;CAMnD;AAED,qBAAa,4BAA6B,SAAQ,aAAa;IAC7D,SAAkB,IAAI,kCAAkC;gBAC5C,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE;CAK7D;AAED,qBAAa,sBAAuB,SAAQ,aAAa;aAGrC,KAAK,EAAE,UAAU,GAAG,MAAM;aAC1B,KAAK,EAAE,MAAM;IAH/B,SAAkB,IAAI,4BAA4B;gBAEhC,KAAK,EAAE,UAAU,GAAG,MAAM,EAC1B,KAAK,EAAE,MAAM,EAC7B,GAAG,EAAE,MAAM;CAId;AAED,qBAAa,wBAAyB,SAAQ,aAAa;IACzD,SAAkB,IAAI,8BAA8B;gBAElD,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,SAAS,MAAM,EAAE;CAMhC;AAED,qBAAa,kBAAmB,SAAQ,aAAa;aAGjC,KAAK,EAAE,OAAO;IAFhC,SAAkB,IAAI,wBAAwB;gBAE5B,KAAK,EAAE,OAAO,EAC9B,GAAG,EAAE,MAAM;CAId;AAED,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,SAAkB,IAAI,4BAA4B;gBACtC,MAAM,EAAE,MAAM;CAG3B;AAED,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,SAAkB,IAAI,6BAA6B;gBACvC,IAAI,EAAE,MAAM;CAKzB"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAMA,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAkB,IAAI,EAAE,MAAM,CAAmB;CAClD;AAED,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,SAAkB,IAAI,4BAA4B;;CAOnD;AAED,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,SAAkB,IAAI,yBAAyB;gBACnC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE;CAKxD;AAED,qBAAa,0BAA2B,SAAQ,aAAa;IAC3D,SAAkB,IAAI,gCAAgC;gBAC1C,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE;CAKxD;AAED,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,SAAkB,IAAI,0BAA0B;gBACpC,IAAI,EAAE,MAAM;CAKzB;AAED,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,SAAkB,IAAI,4BAA4B;;CAMnD;AAED,qBAAa,4BAA6B,SAAQ,aAAa;IAC7D,SAAkB,IAAI,kCAAkC;gBAC5C,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE;CAK7D;AAED,qBAAa,sBAAuB,SAAQ,aAAa;aAGrC,KAAK,EAAE,UAAU,GAAG,MAAM;aAC1B,KAAK,EAAE,MAAM;IAH/B,SAAkB,IAAI,4BAA4B;gBAEhC,KAAK,EAAE,UAAU,GAAG,MAAM,EAC1B,KAAK,EAAE,MAAM,EAC7B,GAAG,EAAE,MAAM;CAId;AAED,qBAAa,wBAAyB,SAAQ,aAAa;IACzD,SAAkB,IAAI,8BAA8B;gBAElD,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,SAAS,MAAM,EAAE;CAMhC;AAED,qBAAa,kBAAmB,SAAQ,aAAa;aAGjC,KAAK,EAAE,OAAO;IAFhC,SAAkB,IAAI,wBAAwB;gBAE5B,KAAK,EAAE,OAAO,EAC9B,GAAG,EAAE,MAAM;CAId;AAED,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,SAAkB,IAAI,4BAA4B;gBACtC,MAAM,EAAE,MAAM;CAG3B;AAED,qBAAa,uBAAwB,SAAQ,aAAa;aAKtC,IAAI,EAAE,MAAM;IAJ9B,SAAkB,IAAI,6BAA6B;IACnD,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,CAAC,IAAI,+BAA+B;gBAEjC,IAAI,EAAE,MAAM,EAC5B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,cAAc,EAAE,SAAS,MAAM,EAAE;CAMpC;AAED,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,SAAkB,IAAI,6BAA6B;gBACvC,IAAI,EAAE,MAAM;CAKzB"}
|
package/dist/errors.js
CHANGED
|
@@ -73,6 +73,16 @@ export class DeferredActionNotFound extends ApprovalError {
|
|
|
73
73
|
super(`No deferred-action row found for task_id '${taskId}'.`);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
+
export class UndeclaredRequesterKind extends ApprovalError {
|
|
77
|
+
kind;
|
|
78
|
+
name = "UndeclaredRequesterKind";
|
|
79
|
+
/** Stable wire code mapped by downstream interceptors / error middleware. */
|
|
80
|
+
static code = "UNDECLARED_REQUESTER_KIND";
|
|
81
|
+
constructor(kind, ownedKinds, requesterKinds) {
|
|
82
|
+
super(`Approval kind '${kind}' is neither OWNED (defineApprovalKinds + registerKinds) nor declared via defineApprovalRequester. Owned: [${ownedKinds.join(", ")}]; requester-declared: [${requesterKinds.join(", ")}]. Call defineApprovalRequester('<owner>.<resource>.<verb>') at boot to request a cross-owner kind. See D231 Rule 1.`);
|
|
83
|
+
this.kind = kind;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
76
86
|
export class TenantPolicyKindUnknown extends ApprovalError {
|
|
77
87
|
name = "TenantPolicyKindUnknown";
|
|
78
88
|
constructor(kind) {
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,EAAE;AACF,oEAAoE;AACpE,mEAAmE;AACnE,qBAAqB;AAErB,MAAM,OAAO,aAAc,SAAQ,KAAK;IACpB,IAAI,GAAW,eAAe,CAAC;CAClD;AAED,MAAM,OAAO,sBAAuB,SAAQ,aAAa;IACrC,IAAI,GAAG,wBAAwB,CAAC;IAClD;QACE,KAAK,CACH,yEAAyE;YACvE,8BAA8B,CACjC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IAClC,IAAI,GAAG,qBAAqB,CAAC;IAC/C,YAAY,IAAY,EAAE,UAA6B;QACrD,KAAK,CACH,kBAAkB,IAAI,iDAAiD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAC/H,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,aAAa;IACzC,IAAI,GAAG,4BAA4B,CAAC;IACtD,YAAY,IAAY,EAAE,UAA6B;QACrD,KAAK,CACH,+BAA+B,IAAI,mEAAmE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC/H,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IACnC,IAAI,GAAG,sBAAsB,CAAC;IAChD,YAAY,IAAY;QACtB,KAAK,CACH,mCAAmC,IAAI,8CAA8C,CACtF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,aAAa;IACrC,IAAI,GAAG,wBAAwB,CAAC;IAClD;QACE,KAAK,CACH,+JAA+J,CAChK,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,4BAA6B,SAAQ,aAAa;IAC3C,IAAI,GAAG,8BAA8B,CAAC;IACxD,YAAY,WAAmB,EAAE,QAA2B;QAC1D,KAAK,CACH,qCAAqC,WAAW,uCAAuC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,sFAAsF,CACjM,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,aAAa;IAGrC;IACA;IAHA,IAAI,GAAG,wBAAwB,CAAC;IAClD,YACkB,KAA0B,EAC1B,KAAa,EAC7B,GAAW;QAEX,KAAK,CAAC,GAAG,CAAC,CAAC;QAJK,UAAK,GAAL,KAAK,CAAqB;QAC1B,UAAK,GAAL,KAAK,CAAQ;IAI/B,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,aAAa;IACvC,IAAI,GAAG,0BAA0B,CAAC;IACpD,YACE,YAAoB,EACpB,QAAgB,EAChB,UAA6B;QAE7B,KAAK,CACH,SAAS,QAAQ,8BAA8B,YAAY,mEAAmE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,CACpL,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IAGjC;IAFA,IAAI,GAAG,oBAAoB,CAAC;IAC9C,YACkB,KAAc,EAC9B,GAAW;QAEX,KAAK,CAAC,GAAG,CAAC,CAAC;QAHK,UAAK,GAAL,KAAK,CAAS;IAIhC,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,aAAa;IACrC,IAAI,GAAG,wBAAwB,CAAC;IAClD,YAAY,MAAc;QACxB,KAAK,CAAC,6CAA6C,MAAM,IAAI,CAAC,CAAC;IACjE,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,aAAa;IACtC,IAAI,GAAG,yBAAyB,CAAC;IACnD,YAAY,IAAY;QACtB,KAAK,CACH,sCAAsC,IAAI,+IAA+I,CAC1L,CAAC;IACJ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
export declare const LIB_NAME = "approval";
|
|
2
|
-
export declare const VERSION = "0.
|
|
3
|
-
export { defineApprovalKinds, KindRegistry, type DefineApprovalKindsOpts, } from "./kinds";
|
|
4
|
-
export { initApproval, requireApproval, getApprovalOrNull, requireKindRegistry, requireHandlers, registerKinds, _resetForTests, } from "./init";
|
|
2
|
+
export declare const VERSION = "0.2.0";
|
|
3
|
+
export { defineApprovalKinds, KindRegistry, RequesterRegistry, validateCrossOwnerKind, type DefineApprovalKindsOpts, } from "./kinds";
|
|
4
|
+
export { initApproval, requireApproval, getApprovalOrNull, requireKindRegistry, requireHandlers, requesterRegistry, defineApprovalRequester, registerKinds, _resetForTests, } from "./init";
|
|
5
5
|
export { bindApprovalHandlers, type BindApprovalHandlersOpts, } from "./handlers";
|
|
6
6
|
export { requestApproval } from "./request";
|
|
7
7
|
export { startApprovalConsumer, stopApprovalConsumer, defaultQueueName, _resetConsumerForTests, type StartApprovalConsumerOpts, type ApprovalConsumerHandle, } from "./consumer";
|
|
8
8
|
export { getApprovalMigrationSQL, splitStatements, type GetMigrationSQLOpts, } from "./migrations";
|
|
9
9
|
export { TaskTrackingGrpcClient, TASK_SERVICE_DESCRIPTOR, type TaskTrackingGrpcClientOpts, } from "./task-tracking-client";
|
|
10
|
-
export {
|
|
11
|
-
export
|
|
10
|
+
export { createApprovalPolicyClient, ApprovalPolicyGrpcClient, APPROVAL_POLICY_SERVICE, type CreateApprovalPolicyClientOpts, } from "./policy-client";
|
|
11
|
+
export { ApprovalError, ApprovalNotInitialized, ApproverRoleNotInCatalog, DeferredActionNotFound, HandlerForUnregisteredKind, HandlerNotRegistered, IdempotencyKeyRequired, InvalidApprovalSegment, ReservedServiceNameViolation, TaskCreationFailed, TenantPolicyKindUnknown, UndeclaredRequesterKind, UnknownApprovalKind, } from "./errors";
|
|
12
|
+
export type { ApprovalKindDef, ApprovalKindDefInput, ApprovalPolicyRow, ApprovalPolicyServiceClient, ApproverKind, CreateTaskRequest, CreateTaskResponse, DbRlsLike, DeferredActionRow, DefinedKindMap, GetPolicyRequest, GetPolicyResponse, HandlerContext, HandlerSet, InitApprovalConfig, MembershipRolesLookup, RequestApprovalOpts, RequestApprovalResult, RequestApprovalResultStatus, ResolvedApprovalConfig, ResolvedPolicy, TaskCompletedEvent, TaskServiceClient, } from "./types";
|
|
12
13
|
export { DEFAULT_CONSUMER_LEASE_SECONDS, DEFAULT_CONSUMER_MAX_RETRIES, DEFAULT_EXPIRY_SECONDS, DEFAULT_IDEMPOTENCY_TTL_SECONDS, RESERVED_SERVICE_NAMES, } from "./types";
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,KAAK,uBAAuB,GAC7B,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,oBAAoB,EACpB,KAAK,wBAAwB,GAC9B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,0BAA0B,GAChC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,EAC5B,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,uBAAuB,GAC7B,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,cAAc,GACf,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,oBAAoB,EACpB,KAAK,wBAAwB,GAC9B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,0BAA0B,GAChC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,8BAA8B,GACpC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,EAC5B,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,EAC3B,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,14 +3,15 @@
|
|
|
3
3
|
// Spec: planning hub feature_doc serviceId=nodii-libs docKey=approval.
|
|
4
4
|
// Polyglot ship: TS + Python + Go in parity. This is the TypeScript impl.
|
|
5
5
|
export const LIB_NAME = "approval";
|
|
6
|
-
export const VERSION = "0.
|
|
7
|
-
export { defineApprovalKinds, KindRegistry, } from "./kinds";
|
|
8
|
-
export { initApproval, requireApproval, getApprovalOrNull, requireKindRegistry, requireHandlers, registerKinds, _resetForTests, } from "./init";
|
|
6
|
+
export const VERSION = "0.2.0";
|
|
7
|
+
export { defineApprovalKinds, KindRegistry, RequesterRegistry, validateCrossOwnerKind, } from "./kinds";
|
|
8
|
+
export { initApproval, requireApproval, getApprovalOrNull, requireKindRegistry, requireHandlers, requesterRegistry, defineApprovalRequester, registerKinds, _resetForTests, } from "./init";
|
|
9
9
|
export { bindApprovalHandlers, } from "./handlers";
|
|
10
10
|
export { requestApproval } from "./request";
|
|
11
11
|
export { startApprovalConsumer, stopApprovalConsumer, defaultQueueName, _resetConsumerForTests, } from "./consumer";
|
|
12
12
|
export { getApprovalMigrationSQL, splitStatements, } from "./migrations";
|
|
13
13
|
export { TaskTrackingGrpcClient, TASK_SERVICE_DESCRIPTOR, } from "./task-tracking-client";
|
|
14
|
-
export {
|
|
14
|
+
export { createApprovalPolicyClient, ApprovalPolicyGrpcClient, APPROVAL_POLICY_SERVICE, } from "./policy-client";
|
|
15
|
+
export { ApprovalError, ApprovalNotInitialized, ApproverRoleNotInCatalog, DeferredActionNotFound, HandlerForUnregisteredKind, HandlerNotRegistered, IdempotencyKeyRequired, InvalidApprovalSegment, ReservedServiceNameViolation, TaskCreationFailed, TenantPolicyKindUnknown, UndeclaredRequesterKind, UnknownApprovalKind, } from "./errors";
|
|
15
16
|
export { DEFAULT_CONSUMER_LEASE_SECONDS, DEFAULT_CONSUMER_MAX_RETRIES, DEFAULT_EXPIRY_SECONDS, DEFAULT_IDEMPOTENCY_TTL_SECONDS, RESERVED_SERVICE_NAMES, } from "./types";
|
|
16
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAE1E,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAE1E,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,GAEvB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,cAAc,GACf,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,oBAAoB,GAErB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,GAGvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,uBAAuB,EACvB,eAAe,GAEhB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GAExB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,GAExB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,EAC5B,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AA4BlB,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,SAAS,CAAC"}
|
package/dist/init.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KindRegistry } from "./kinds";
|
|
1
|
+
import { KindRegistry, RequesterRegistry } from "./kinds";
|
|
2
2
|
import type { ApprovalKindDef, HandlerSet, InitApprovalConfig, ResolvedApprovalConfig } from "./types";
|
|
3
3
|
/**
|
|
4
4
|
* Initialise the approval library. Idempotent within a process — subsequent
|
|
@@ -10,6 +10,26 @@ export declare function requireApproval(): ResolvedApprovalConfig;
|
|
|
10
10
|
export declare function getApprovalOrNull(): ResolvedApprovalConfig | null;
|
|
11
11
|
export declare function requireKindRegistry(): KindRegistry;
|
|
12
12
|
export declare function requireHandlers(): Map<string, HandlerSet>;
|
|
13
|
+
/** The cross-owner requester registry. Never null — it's eagerly constructed
|
|
14
|
+
* so `defineApprovalRequester` can be called at module-load time, before
|
|
15
|
+
* `initApproval`. */
|
|
16
|
+
export declare function requesterRegistry(): RequesterRegistry;
|
|
17
|
+
/**
|
|
18
|
+
* Declare that the running service intends to REQUEST approvals for a
|
|
19
|
+
* cross-owner `kind` (a fully-qualified `<owner>.<resource>.<verb>` string,
|
|
20
|
+
* e.g. `tenant.impersonation.start`) per D231 Rule 1.
|
|
21
|
+
*
|
|
22
|
+
* This is the typo-prevention surface: `requestApproval` for a kind that is
|
|
23
|
+
* neither OWNED (declared via `defineApprovalKinds` + `registerKinds`) nor
|
|
24
|
+
* declared here throws `UndeclaredRequesterKind`. Owning a kind already
|
|
25
|
+
* implies the right to request it, so owned kinds do NOT also need this call.
|
|
26
|
+
*
|
|
27
|
+
* Idempotent: calling twice for the same kind is a no-op. Callable before
|
|
28
|
+
* `initApproval` (it's a static declaration, like `defineApprovalKinds`).
|
|
29
|
+
*
|
|
30
|
+
* @throws InvalidApprovalSegment if `kind` is not `<owner>.<resource>.<verb>`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function defineApprovalRequester(kind: string): void;
|
|
13
33
|
/**
|
|
14
34
|
* Register a kind map produced by `defineApprovalKinds`. Cross-checks every
|
|
15
35
|
* kind's `approverRole` against the registered `knownRoles` set (spec § 5.3,
|
package/dist/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AA+BjB;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAsE1D;AAED,wBAAgB,eAAe,IAAI,sBAAsB,CAGxD;AAED,wBAAgB,iBAAiB,IAAI,sBAAsB,GAAG,IAAI,CAEjE;AAED,wBAAgB,mBAAmB,IAAI,YAAY,CAGlD;AAED,wBAAgB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAGzD;AAED;;sBAEsB;AACtB,wBAAgB,iBAAiB,IAAI,iBAAiB,CAErD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI,CAezE;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,IAAI,IAAI,CAKrC"}
|
package/dist/init.js
CHANGED
|
@@ -11,13 +11,17 @@
|
|
|
11
11
|
//
|
|
12
12
|
// No Noop default. No InMemory default. Per R1.
|
|
13
13
|
import { ApprovalNotInitialized, ApproverRoleNotInCatalog } from "./errors";
|
|
14
|
-
import { KindRegistry } from "./kinds";
|
|
14
|
+
import { KindRegistry, RequesterRegistry } from "./kinds";
|
|
15
15
|
import { validateServiceName } from "./validation";
|
|
16
16
|
import { DEFAULT_CONSUMER_LEASE_SECONDS, DEFAULT_CONSUMER_MAX_RETRIES, DEFAULT_EXPIRY_SECONDS, } from "./types";
|
|
17
17
|
import { TaskTrackingGrpcClient } from "./task-tracking-client";
|
|
18
18
|
let RESOLVED = null;
|
|
19
19
|
let REGISTRY = null;
|
|
20
20
|
let HANDLERS = null;
|
|
21
|
+
// Cross-owner requester registry (D231 Rule 1). Process-global like the kind
|
|
22
|
+
// registry. Survives `initApproval` not being called yet — `defineApprovalRequester`
|
|
23
|
+
// is a static declaration callable at module load, before init.
|
|
24
|
+
let REQUESTERS = new RequesterRegistry();
|
|
21
25
|
const CONSOLE_LOGGER = {
|
|
22
26
|
info(msg, fields) {
|
|
23
27
|
// biome-ignore lint/suspicious/noConsole: default logger
|
|
@@ -113,6 +117,30 @@ export function requireHandlers() {
|
|
|
113
117
|
throw new ApprovalNotInitialized();
|
|
114
118
|
return HANDLERS;
|
|
115
119
|
}
|
|
120
|
+
/** The cross-owner requester registry. Never null — it's eagerly constructed
|
|
121
|
+
* so `defineApprovalRequester` can be called at module-load time, before
|
|
122
|
+
* `initApproval`. */
|
|
123
|
+
export function requesterRegistry() {
|
|
124
|
+
return REQUESTERS;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Declare that the running service intends to REQUEST approvals for a
|
|
128
|
+
* cross-owner `kind` (a fully-qualified `<owner>.<resource>.<verb>` string,
|
|
129
|
+
* e.g. `tenant.impersonation.start`) per D231 Rule 1.
|
|
130
|
+
*
|
|
131
|
+
* This is the typo-prevention surface: `requestApproval` for a kind that is
|
|
132
|
+
* neither OWNED (declared via `defineApprovalKinds` + `registerKinds`) nor
|
|
133
|
+
* declared here throws `UndeclaredRequesterKind`. Owning a kind already
|
|
134
|
+
* implies the right to request it, so owned kinds do NOT also need this call.
|
|
135
|
+
*
|
|
136
|
+
* Idempotent: calling twice for the same kind is a no-op. Callable before
|
|
137
|
+
* `initApproval` (it's a static declaration, like `defineApprovalKinds`).
|
|
138
|
+
*
|
|
139
|
+
* @throws InvalidApprovalSegment if `kind` is not `<owner>.<resource>.<verb>`.
|
|
140
|
+
*/
|
|
141
|
+
export function defineApprovalRequester(kind) {
|
|
142
|
+
REQUESTERS.add(kind);
|
|
143
|
+
}
|
|
116
144
|
/**
|
|
117
145
|
* Register a kind map produced by `defineApprovalKinds`. Cross-checks every
|
|
118
146
|
* kind's `approverRole` against the registered `knownRoles` set (spec § 5.3,
|
|
@@ -135,5 +163,6 @@ export function _resetForTests() {
|
|
|
135
163
|
RESOLVED = null;
|
|
136
164
|
REGISTRY = null;
|
|
137
165
|
HANDLERS = null;
|
|
166
|
+
REQUESTERS = new RequesterRegistry();
|
|
138
167
|
}
|
|
139
168
|
//# sourceMappingURL=init.js.map
|
package/dist/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,EAAE;AACF,0EAA0E;AAC1E,qEAAqE;AACrE,EAAE;AACF,6BAA6B;AAC7B,uEAAuE;AACvE,kCAAkC;AAClC,+EAA+E;AAC/E,uCAAuC;AACvC,EAAE;AACF,gDAAgD;AAEhD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
package/dist/kinds.d.ts
CHANGED
|
@@ -17,4 +17,29 @@ export declare class KindRegistry {
|
|
|
17
17
|
values(): readonly ApprovalKindDef[];
|
|
18
18
|
size(): number;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Validate a fully-qualified cross-owner kind name `<owner>.<resource>.<verb>`.
|
|
22
|
+
*
|
|
23
|
+
* Per D231 Rule 1, a cross-owner kind is a string with at least three
|
|
24
|
+
* dot-separated, non-empty segments. The owner is `kind.split('.')[0]`.
|
|
25
|
+
* Throws `InvalidApprovalSegment` with `which='resource'` (the only segment
|
|
26
|
+
* kinds the typed error models) on a malformed kind — the message carries
|
|
27
|
+
* the full reason.
|
|
28
|
+
*/
|
|
29
|
+
export declare function validateCrossOwnerKind(kind: string): void;
|
|
30
|
+
/**
|
|
31
|
+
* Process-local registry of cross-owner kinds this service intends to REQUEST
|
|
32
|
+
* (per D231 Rule 1, `defineApprovalRequester`). Sibling to {@link KindRegistry}
|
|
33
|
+
* (which holds kinds this service OWNS). Owning a kind already implies the
|
|
34
|
+
* right to request it, so `requestApproval` accepts a kind that is in EITHER
|
|
35
|
+
* registry; only a kind in neither throws `UndeclaredRequesterKind`.
|
|
36
|
+
*/
|
|
37
|
+
export declare class RequesterRegistry {
|
|
38
|
+
private readonly set;
|
|
39
|
+
/** Declare a cross-owner kind as one this service intends to request. */
|
|
40
|
+
add(kind: string): void;
|
|
41
|
+
has(kind: string): boolean;
|
|
42
|
+
keys(): readonly string[];
|
|
43
|
+
size(): number;
|
|
44
|
+
}
|
|
20
45
|
//# sourceMappingURL=kinds.d.ts.map
|
package/dist/kinds.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kinds.d.ts","sourceRoot":"","sources":["../src/kinds.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kinds.d.ts","sourceRoot":"","sources":["../src/kinds.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,cAAc,EACf,MAAM,SAAS,CAAC;AAGjB,MAAM,WAAW,uBAAuB;IACtC,oEAAoE;IACpE,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC;AAED,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,MAAM,EAChB,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAEpD,WAAW,EAAE,CAAC,EACd,IAAI,EAAE,CAAC,EACP,IAAI,GAAE,uBAA4B,GACjC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAmCtB;AAED,mEAAmE;AACnE,qBAAa,YAAY;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAsC;gBAE9C,WAAW,EAAE,MAAM;IAI/B,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI;IAWrD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI9C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,IAAI,IAAI,SAAS,MAAM,EAAE;IAIzB,MAAM,IAAI,SAAS,eAAe,EAAE;IAIpC,IAAI,IAAI,MAAM;CAGf;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAgBzD;AAED;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IAEzC,yEAAyE;IACzE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKvB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,IAAI,IAAI,SAAS,MAAM,EAAE;IAIzB,IAAI,IAAI,MAAM;CAGf"}
|
package/dist/kinds.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// exact string `${service}.${resource}.${verb}`.
|
|
5
5
|
// Runtime: validates serviceName + resource + verb segments via
|
|
6
6
|
// `validation.ts`. Rejects reserved namespaces unless explicitly bypassed.
|
|
7
|
+
import { InvalidApprovalSegment } from "./errors";
|
|
7
8
|
import { validatePermissionSegment, validateServiceName } from "./validation";
|
|
8
9
|
export function defineApprovalKinds(serviceName, defs, opts = {}) {
|
|
9
10
|
validateServiceName(serviceName, opts);
|
|
@@ -69,4 +70,46 @@ export class KindRegistry {
|
|
|
69
70
|
return this.map.size;
|
|
70
71
|
}
|
|
71
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Validate a fully-qualified cross-owner kind name `<owner>.<resource>.<verb>`.
|
|
75
|
+
*
|
|
76
|
+
* Per D231 Rule 1, a cross-owner kind is a string with at least three
|
|
77
|
+
* dot-separated, non-empty segments. The owner is `kind.split('.')[0]`.
|
|
78
|
+
* Throws `InvalidApprovalSegment` with `which='resource'` (the only segment
|
|
79
|
+
* kinds the typed error models) on a malformed kind — the message carries
|
|
80
|
+
* the full reason.
|
|
81
|
+
*/
|
|
82
|
+
export function validateCrossOwnerKind(kind) {
|
|
83
|
+
if (typeof kind !== "string" || kind.length === 0) {
|
|
84
|
+
throw new InvalidApprovalSegment("resource", String(kind), "defineApprovalRequester: kind must be a non-empty string");
|
|
85
|
+
}
|
|
86
|
+
const segments = kind.split(".");
|
|
87
|
+
if (segments.length < 3 || segments.some((s) => s.length === 0)) {
|
|
88
|
+
throw new InvalidApprovalSegment("resource", kind, `defineApprovalRequester: kind '${kind}' must be a fully-qualified '<owner>.<resource>.<verb>' (>= 3 non-empty dot-separated segments). See D231 Rule 1.`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Process-local registry of cross-owner kinds this service intends to REQUEST
|
|
93
|
+
* (per D231 Rule 1, `defineApprovalRequester`). Sibling to {@link KindRegistry}
|
|
94
|
+
* (which holds kinds this service OWNS). Owning a kind already implies the
|
|
95
|
+
* right to request it, so `requestApproval` accepts a kind that is in EITHER
|
|
96
|
+
* registry; only a kind in neither throws `UndeclaredRequesterKind`.
|
|
97
|
+
*/
|
|
98
|
+
export class RequesterRegistry {
|
|
99
|
+
set = new Set();
|
|
100
|
+
/** Declare a cross-owner kind as one this service intends to request. */
|
|
101
|
+
add(kind) {
|
|
102
|
+
validateCrossOwnerKind(kind);
|
|
103
|
+
this.set.add(kind);
|
|
104
|
+
}
|
|
105
|
+
has(kind) {
|
|
106
|
+
return this.set.has(kind);
|
|
107
|
+
}
|
|
108
|
+
keys() {
|
|
109
|
+
return Array.from(this.set);
|
|
110
|
+
}
|
|
111
|
+
size() {
|
|
112
|
+
return this.set.size;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
72
115
|
//# sourceMappingURL=kinds.js.map
|
package/dist/kinds.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kinds.js","sourceRoot":"","sources":["../src/kinds.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,uEAAuE;AACvE,iDAAiD;AACjD,gEAAgE;AAChE,2EAA2E;
|
|
1
|
+
{"version":3,"file":"kinds.js","sourceRoot":"","sources":["../src/kinds.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { type ChannelCredentials, type Interceptor } from "@grpc/grpc-js";
|
|
2
|
+
import type { ApprovalPolicyServiceClient, GetPolicyRequest, GetPolicyResponse } from "./types";
|
|
3
|
+
/** Wire shape of the GetPolicy request (snake_case per the proto). */
|
|
4
|
+
interface GetPolicyWireRequest {
|
|
5
|
+
tenant_id: string;
|
|
6
|
+
kind: string;
|
|
7
|
+
}
|
|
8
|
+
/** Wire shape of the GetPolicy response. Carries threshold_params in EITHER
|
|
9
|
+
* form per the D231 Addendum. */
|
|
10
|
+
interface GetPolicyWireResponse {
|
|
11
|
+
approver_role?: string;
|
|
12
|
+
/** google.protobuf.Struct form — a plain JSON object over the JSON wire. */
|
|
13
|
+
threshold_params?: Record<string, unknown> | null;
|
|
14
|
+
/** Owner-discretionary `string threshold_params_json` form (Addendum). */
|
|
15
|
+
threshold_params_json?: string | null;
|
|
16
|
+
pool_mode?: boolean;
|
|
17
|
+
enabled?: boolean;
|
|
18
|
+
expires_in_seconds?: number;
|
|
19
|
+
version?: number;
|
|
20
|
+
}
|
|
21
|
+
declare function encodeRequest(req: GetPolicyWireRequest): Buffer;
|
|
22
|
+
declare function decodeResponse(buf: Buffer): GetPolicyWireResponse;
|
|
23
|
+
/** The fully-qualified gRPC method name is owner-specific (e.g.
|
|
24
|
+
* `/nodii.tenant.v1.ApprovalPolicyService/GetPolicy`); the descriptor path
|
|
25
|
+
* is derived from the caller-supplied `serviceName`. */
|
|
26
|
+
declare function methodPath(serviceName: string): string;
|
|
27
|
+
export interface CreateApprovalPolicyClientOpts {
|
|
28
|
+
/** Channel credentials — defaults to insecure (dev). Production uses TLS. */
|
|
29
|
+
credentials?: ChannelCredentials;
|
|
30
|
+
/** Optional grpc-js interceptors — used by @nodii/grpc-auth's S2S envelope. */
|
|
31
|
+
interceptors?: Interceptor[];
|
|
32
|
+
/** Identifies this caller in the `x-source-module` metadata header. */
|
|
33
|
+
sourceModule?: string;
|
|
34
|
+
/** Per-RPC deadline in ms. Default 5s. */
|
|
35
|
+
deadlineMs?: number;
|
|
36
|
+
}
|
|
37
|
+
/** Production-default client. Speaks real gRPC against the owner service. */
|
|
38
|
+
export declare class ApprovalPolicyGrpcClient implements ApprovalPolicyServiceClient {
|
|
39
|
+
private readonly client;
|
|
40
|
+
private readonly path;
|
|
41
|
+
private readonly deadlineMs;
|
|
42
|
+
private readonly sourceModule;
|
|
43
|
+
private closed;
|
|
44
|
+
constructor(
|
|
45
|
+
/** Fully-qualified gRPC service name, e.g.
|
|
46
|
+
* `nodii.tenant.v1.ApprovalPolicyService`. Used as the descriptor path. */
|
|
47
|
+
serviceName: string,
|
|
48
|
+
/** Owner address `host:port`. */
|
|
49
|
+
address: string, opts?: CreateApprovalPolicyClientOpts);
|
|
50
|
+
getPolicy(req: GetPolicyRequest): Promise<GetPolicyResponse | null>;
|
|
51
|
+
close(): Promise<void>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Construct a READ-only `ApprovalPolicyService.GetPolicy` client for an owner
|
|
55
|
+
* service (D231 Rule 2).
|
|
56
|
+
*
|
|
57
|
+
* @param serviceName fully-qualified gRPC service name, e.g.
|
|
58
|
+
* `nodii.tenant.v1.ApprovalPolicyService` (the descriptor path).
|
|
59
|
+
* @param address owner address `host:port`.
|
|
60
|
+
*/
|
|
61
|
+
export declare function createApprovalPolicyClient(serviceName: string, address: string, opts?: CreateApprovalPolicyClientOpts): ApprovalPolicyGrpcClient;
|
|
62
|
+
/** Descriptor metadata, exported for the in-process test server (parity with
|
|
63
|
+
* TASK_SERVICE_DESCRIPTOR). */
|
|
64
|
+
export declare const APPROVAL_POLICY_SERVICE: {
|
|
65
|
+
readonly methodPath: typeof methodPath;
|
|
66
|
+
readonly encodeRequest: typeof encodeRequest;
|
|
67
|
+
readonly decodeResponse: typeof decodeResponse;
|
|
68
|
+
};
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=policy-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-client.d.ts","sourceRoot":"","sources":["../src/policy-client.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,WAAW,EAKjB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EACV,2BAA2B,EAC3B,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,sEAAsE;AACtE,UAAU,oBAAoB;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;kCACkC;AAClC,UAAU,qBAAqB;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAClD,0EAA0E;IAC1E,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,iBAAS,aAAa,CAAC,GAAG,EAAE,oBAAoB,GAAG,MAAM,CAExD;AAED,iBAAS,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAM1D;AA4CD;;yDAEyD;AACzD,iBAAS,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,MAAM,WAAW,8BAA8B;IAC7C,6EAA6E;IAC7E,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,6EAA6E;AAC7E,qBAAa,wBAAyB,YAAW,2BAA2B;IAC1E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,MAAM,CAAS;;IAGrB;gFAC4E;IAC5E,WAAW,EAAE,MAAM;IACnB,iCAAiC;IACjC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,8BAAmC;IAyBrC,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAyCnE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK7B;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,8BAAmC,GACxC,wBAAwB,CAE1B;AAED;gCACgC;AAChC,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAC"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
// Real grpc-js client for an owner service's
|
|
2
|
+
// `<owner>.ApprovalPolicyService.GetPolicy` per D231 Rule 2.
|
|
3
|
+
//
|
|
4
|
+
// GetPolicy is READ-only: it resolves the owner's per-tenant approval policy
|
|
5
|
+
// for a (tenantId, kind). A NOT_FOUND status means "no per-tenant override" —
|
|
6
|
+
// the caller defaults to the kind's `defaultApproverRole`. This client maps
|
|
7
|
+
// NOT_FOUND to `null` (distinct from an error) so the caller can default.
|
|
8
|
+
//
|
|
9
|
+
// Modeled on task-tracking-client.ts: a hand-written @grpc/grpc-js descriptor
|
|
10
|
+
// (no buf codegen) with a JSON-over-gRPC envelope. The proto is small + stable.
|
|
11
|
+
//
|
|
12
|
+
// Wire-format note (D231 Addendum, R2): the owner ships `threshold_params`
|
|
13
|
+
// EITHER as `google.protobuf.Struct threshold_params` OR as
|
|
14
|
+
// `string threshold_params_json` (a JSON-object string), at the owner's
|
|
15
|
+
// proto-convention discretion. This client parses BOTH forms into a plain
|
|
16
|
+
// JS object — tenant-service ships the `_json` form; others may ship Struct.
|
|
17
|
+
//
|
|
18
|
+
// Per R1: this is NOT a Noop. The client speaks real gRPC. When the URL points
|
|
19
|
+
// at an unreachable host, callers get a real UNAVAILABLE error.
|
|
20
|
+
import { Client, Metadata, credentials as grpcCredentials, status as grpcStatus, } from "@grpc/grpc-js";
|
|
21
|
+
function encodeRequest(req) {
|
|
22
|
+
return Buffer.from(JSON.stringify(req), "utf8");
|
|
23
|
+
}
|
|
24
|
+
function decodeResponse(buf) {
|
|
25
|
+
const parsed = JSON.parse(buf.toString("utf8"));
|
|
26
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
27
|
+
throw new Error(`Malformed GetPolicyResponse: ${JSON.stringify(parsed)}`);
|
|
28
|
+
}
|
|
29
|
+
return parsed;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Parse the threshold params from whichever wire form the owner shipped:
|
|
33
|
+
* - `threshold_params` (Struct → plain object) — used as-is,
|
|
34
|
+
* - `threshold_params_json` (string) — JSON.parse'd into an object,
|
|
35
|
+
* - neither / null → `null`.
|
|
36
|
+
* A malformed `threshold_params_json` string throws (loud, not silent).
|
|
37
|
+
*/
|
|
38
|
+
function parseThresholdParams(wire) {
|
|
39
|
+
if (typeof wire.threshold_params_json === "string") {
|
|
40
|
+
if (wire.threshold_params_json.length === 0)
|
|
41
|
+
return null;
|
|
42
|
+
const parsed = JSON.parse(wire.threshold_params_json);
|
|
43
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
44
|
+
throw new Error(`GetPolicyResponse.threshold_params_json must be a JSON object string, got: ${wire.threshold_params_json}`);
|
|
45
|
+
}
|
|
46
|
+
return parsed;
|
|
47
|
+
}
|
|
48
|
+
if (wire.threshold_params != null &&
|
|
49
|
+
typeof wire.threshold_params === "object") {
|
|
50
|
+
return wire.threshold_params;
|
|
51
|
+
}
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
function toResponse(wire) {
|
|
55
|
+
return {
|
|
56
|
+
approverRole: typeof wire.approver_role === "string" ? wire.approver_role : "",
|
|
57
|
+
thresholdParams: parseThresholdParams(wire),
|
|
58
|
+
poolMode: Boolean(wire.pool_mode),
|
|
59
|
+
enabled: Boolean(wire.enabled),
|
|
60
|
+
expiresInSeconds: typeof wire.expires_in_seconds === "number" ? wire.expires_in_seconds : 0,
|
|
61
|
+
version: typeof wire.version === "number" ? wire.version : 0,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/** The fully-qualified gRPC method name is owner-specific (e.g.
|
|
65
|
+
* `/nodii.tenant.v1.ApprovalPolicyService/GetPolicy`); the descriptor path
|
|
66
|
+
* is derived from the caller-supplied `serviceName`. */
|
|
67
|
+
function methodPath(serviceName) {
|
|
68
|
+
return `/${serviceName}/GetPolicy`;
|
|
69
|
+
}
|
|
70
|
+
/** Production-default client. Speaks real gRPC against the owner service. */
|
|
71
|
+
export class ApprovalPolicyGrpcClient {
|
|
72
|
+
client;
|
|
73
|
+
path;
|
|
74
|
+
deadlineMs;
|
|
75
|
+
sourceModule;
|
|
76
|
+
closed = false;
|
|
77
|
+
constructor(
|
|
78
|
+
/** Fully-qualified gRPC service name, e.g.
|
|
79
|
+
* `nodii.tenant.v1.ApprovalPolicyService`. Used as the descriptor path. */
|
|
80
|
+
serviceName,
|
|
81
|
+
/** Owner address `host:port`. */
|
|
82
|
+
address, opts = {}) {
|
|
83
|
+
if (!serviceName || typeof serviceName !== "string") {
|
|
84
|
+
throw new TypeError("createApprovalPolicyClient: serviceName is required");
|
|
85
|
+
}
|
|
86
|
+
if (!address || typeof address !== "string") {
|
|
87
|
+
throw new TypeError("createApprovalPolicyClient: address is required");
|
|
88
|
+
}
|
|
89
|
+
const channelOpts = {
|
|
90
|
+
interceptors: opts.interceptors ?? [],
|
|
91
|
+
"grpc.keepalive_time_ms": 30_000,
|
|
92
|
+
"grpc.keepalive_timeout_ms": 10_000,
|
|
93
|
+
};
|
|
94
|
+
this.client = new Client(address, opts.credentials ?? grpcCredentials.createInsecure(), channelOpts);
|
|
95
|
+
this.path = methodPath(serviceName);
|
|
96
|
+
this.deadlineMs = opts.deadlineMs ?? 5_000;
|
|
97
|
+
this.sourceModule = opts.sourceModule;
|
|
98
|
+
}
|
|
99
|
+
async getPolicy(req) {
|
|
100
|
+
if (this.closed) {
|
|
101
|
+
throw new Error("ApprovalPolicyGrpcClient: client closed");
|
|
102
|
+
}
|
|
103
|
+
const md = new Metadata();
|
|
104
|
+
if (this.sourceModule)
|
|
105
|
+
md.add("x-source-module", this.sourceModule);
|
|
106
|
+
const wireReq = {
|
|
107
|
+
tenant_id: req.tenantId,
|
|
108
|
+
kind: req.kind,
|
|
109
|
+
};
|
|
110
|
+
const deadline = new Date(Date.now() + this.deadlineMs);
|
|
111
|
+
return new Promise((resolve, reject) => {
|
|
112
|
+
this.client.makeUnaryRequest(this.path, encodeRequest, decodeResponse, wireReq, md, { deadline }, (err, value) => {
|
|
113
|
+
if (err) {
|
|
114
|
+
// NOT_FOUND is a normal "no per-tenant override" signal, not a
|
|
115
|
+
// failure — resolve to null so the caller defaults to the kind's
|
|
116
|
+
// defaultApproverRole (D231 Rule 2).
|
|
117
|
+
if (err.code === grpcStatus.NOT_FOUND) {
|
|
118
|
+
resolve(null);
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
reject(err);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
if (!value) {
|
|
125
|
+
resolve(null);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
resolve(toResponse(value));
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
async close() {
|
|
133
|
+
if (this.closed)
|
|
134
|
+
return;
|
|
135
|
+
this.closed = true;
|
|
136
|
+
this.client.close();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Construct a READ-only `ApprovalPolicyService.GetPolicy` client for an owner
|
|
141
|
+
* service (D231 Rule 2).
|
|
142
|
+
*
|
|
143
|
+
* @param serviceName fully-qualified gRPC service name, e.g.
|
|
144
|
+
* `nodii.tenant.v1.ApprovalPolicyService` (the descriptor path).
|
|
145
|
+
* @param address owner address `host:port`.
|
|
146
|
+
*/
|
|
147
|
+
export function createApprovalPolicyClient(serviceName, address, opts = {}) {
|
|
148
|
+
return new ApprovalPolicyGrpcClient(serviceName, address, opts);
|
|
149
|
+
}
|
|
150
|
+
/** Descriptor metadata, exported for the in-process test server (parity with
|
|
151
|
+
* TASK_SERVICE_DESCRIPTOR). */
|
|
152
|
+
export const APPROVAL_POLICY_SERVICE = {
|
|
153
|
+
methodPath,
|
|
154
|
+
encodeRequest,
|
|
155
|
+
decodeResponse,
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=policy-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-client.js","sourceRoot":"","sources":["../src/policy-client.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,6DAA6D;AAC7D,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,4EAA4E;AAC5E,0EAA0E;AAC1E,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,EAAE;AACF,2EAA2E;AAC3E,4DAA4D;AAC5D,wEAAwE;AACxE,0EAA0E;AAC1E,6EAA6E;AAC7E,EAAE;AACF,+EAA+E;AAC/E,gEAAgE;AAEhE,OAAO,EAIL,MAAM,EACN,QAAQ,EACR,WAAW,IAAI,eAAe,EAC9B,MAAM,IAAI,UAAU,GACrB,MAAM,eAAe,CAAC;AA4BvB,SAAS,aAAa,CAAC,GAAyB;IAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY,CAAC;IAC3D,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,MAA+B,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAC3B,IAA2B;IAE3B,IAAI,OAAO,IAAI,CAAC,qBAAqB,KAAK,QAAQ,EAAE,CAAC;QACnD,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAY,CAAC;QACjE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CACb,8EAA8E,IAAI,CAAC,qBAAqB,EAAE,CAC3G,CAAC;QACJ,CAAC;QACD,OAAO,MAAiC,CAAC;IAC3C,CAAC;IACD,IACE,IAAI,CAAC,gBAAgB,IAAI,IAAI;QAC7B,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ,EACzC,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,IAA2B;IAC7C,OAAO;QACL,YAAY,EACV,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;QAClE,eAAe,EAAE,oBAAoB,CAAC,IAAI,CAAC;QAC3C,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9B,gBAAgB,EACd,OAAO,IAAI,CAAC,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC3E,OAAO,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED;;yDAEyD;AACzD,SAAS,UAAU,CAAC,WAAmB;IACrC,OAAO,IAAI,WAAW,YAAY,CAAC;AACrC,CAAC;AAaD,6EAA6E;AAC7E,MAAM,OAAO,wBAAwB;IAClB,MAAM,CAAS;IACf,IAAI,CAAS;IACb,UAAU,CAAS;IACnB,YAAY,CAAqB;IAC1C,MAAM,GAAG,KAAK,CAAC;IAEvB;IACE;gFAC4E;IAC5E,WAAmB;IACnB,iCAAiC;IACjC,OAAe,EACf,OAAuC,EAAE;QAEzC,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpD,MAAM,IAAI,SAAS,CACjB,qDAAqD,CACtD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,WAAW,GAAkB;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;YACrC,wBAAwB,EAAE,MAAM;YAChC,2BAA2B,EAAE,MAAM;SACpC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CACtB,OAAO,EACP,IAAI,CAAC,WAAW,IAAI,eAAe,CAAC,cAAc,EAAE,EACpD,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAqB;QACnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,YAAY;YAAE,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,OAAO,GAAyB;YACpC,SAAS,EAAE,GAAG,CAAC,QAAQ;YACvB,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,OAAO,IAAI,OAAO,CAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/D,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC1B,IAAI,CAAC,IAAI,EACT,aAAa,EACb,cAAc,EACd,OAAO,EACP,EAAE,EACF,EAAE,QAAQ,EAAE,EACZ,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBACb,IAAI,GAAG,EAAE,CAAC;oBACR,+DAA+D;oBAC/D,iEAAiE;oBACjE,qCAAqC;oBACrC,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,SAAS,EAAE,CAAC;wBACtC,OAAO,CAAC,IAAI,CAAC,CAAC;wBACd,OAAO;oBACT,CAAC;oBACD,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7B,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,WAAmB,EACnB,OAAe,EACf,OAAuC,EAAE;IAEzC,OAAO,IAAI,wBAAwB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED;gCACgC;AAChC,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,UAAU;IACV,aAAa;IACb,cAAc;CACN,CAAC"}
|
package/dist/request.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAKV,mBAAmB,EACnB,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAGjB,wBAAsB,eAAe,CACnC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,qBAAqB,CAAC,CA8ChC"}
|
package/dist/request.js
CHANGED
|
@@ -12,22 +12,32 @@
|
|
|
12
12
|
import { randomUUID, createHash } from "node:crypto";
|
|
13
13
|
import { wrapForSagaStep } from "@nodii/idempotency";
|
|
14
14
|
import { insertDeferredAction, markFailed } from "./deferred-actions";
|
|
15
|
-
import { HandlerNotRegistered, IdempotencyKeyRequired,
|
|
16
|
-
import { requireApproval, requireHandlers, requireKindRegistry } from "./init";
|
|
15
|
+
import { HandlerNotRegistered, IdempotencyKeyRequired, UndeclaredRequesterKind, } from "./errors";
|
|
16
|
+
import { requireApproval, requireHandlers, requireKindRegistry, requesterRegistry, } from "./init";
|
|
17
17
|
import { resolvePolicy } from "./policies";
|
|
18
18
|
import { emitAudit, inc, observe } from "./telemetry-shim";
|
|
19
19
|
import { DEFAULT_IDEMPOTENCY_TTL_SECONDS } from "./types";
|
|
20
20
|
export async function requestApproval(opts) {
|
|
21
|
-
// [1] Validate kind
|
|
21
|
+
// [1] Validate idempotency key + kind declaration.
|
|
22
22
|
if (!opts.idempotencyKey || typeof opts.idempotencyKey !== "string") {
|
|
23
23
|
throw new IdempotencyKeyRequired();
|
|
24
24
|
}
|
|
25
25
|
const cfg = requireApproval();
|
|
26
26
|
const reg = requireKindRegistry();
|
|
27
|
-
const
|
|
28
|
-
if (
|
|
29
|
-
|
|
27
|
+
const ownedDef = reg.get(opts.kind);
|
|
28
|
+
// A kind is ALLOWED if it is OWNED (defineApprovalKinds + registerKinds)
|
|
29
|
+
// OR declared as a cross-owner requester (defineApprovalRequester) per
|
|
30
|
+
// D231 Rule 1. Owning a kind already implies the right to request it, so
|
|
31
|
+
// owned kinds do not also need defineApprovalRequester.
|
|
32
|
+
const isCrossOwnerDeclared = requesterRegistry().has(opts.kind);
|
|
33
|
+
if (!ownedDef && !isCrossOwnerDeclared) {
|
|
34
|
+
throw new UndeclaredRequesterKind(opts.kind, reg.keys(), requesterRegistry().keys());
|
|
30
35
|
}
|
|
36
|
+
// For an owned kind the local def drives policy/self-action/opt-in. For a
|
|
37
|
+
// cross-owner kind there is no local def — the owner owns the policy and
|
|
38
|
+
// task-tracking resolves it via ApprovalPolicyService.GetPolicy (D231
|
|
39
|
+
// Rule 3); the requester library MUST NOT contact the owner here.
|
|
40
|
+
const def = ownedDef ?? syntheticCrossOwnerDef(opts.kind);
|
|
31
41
|
// [2] Wrap via idempotency. Replay returns the same triple.
|
|
32
42
|
return wrapForSagaStep({
|
|
33
43
|
sagaId: opts.sagaId ??
|
|
@@ -40,9 +50,43 @@ export async function requestApproval(opts) {
|
|
|
40
50
|
deferredActionPayload: opts.deferredActionPayload,
|
|
41
51
|
}),
|
|
42
52
|
ttlSeconds: DEFAULT_IDEMPOTENCY_TTL_SECONDS,
|
|
43
|
-
handler: () =>
|
|
53
|
+
handler: () => ownedDef
|
|
54
|
+
? runCanonicalSequence(cfg, def, opts)
|
|
55
|
+
: runCrossOwnerSequence(cfg, def, opts),
|
|
44
56
|
});
|
|
45
57
|
}
|
|
58
|
+
/** Owner service for a kind: everything before the first `.` (D231 Rule 1). */
|
|
59
|
+
function ownerOf(kind) {
|
|
60
|
+
const dot = kind.indexOf(".");
|
|
61
|
+
return dot === -1 ? kind : kind.slice(0, dot);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Build a minimal def for a cross-owner kind. The requester does not own the
|
|
65
|
+
* policy, approver-role, or self-action/opt-in flags — those live on the
|
|
66
|
+
* owner and are resolved by task-tracking via GetPolicy. We only need the
|
|
67
|
+
* kind name + parsed resource/verb (for the action-button + title), so we
|
|
68
|
+
* derive `<resource>.<verb>` as the remainder after `<owner>.`.
|
|
69
|
+
*/
|
|
70
|
+
function syntheticCrossOwnerDef(kind) {
|
|
71
|
+
const segments = kind.split(".");
|
|
72
|
+
const resource = segments[1] ?? "";
|
|
73
|
+
const verb = segments.slice(2).join(".");
|
|
74
|
+
return {
|
|
75
|
+
shortKind: `${resource}.${verb}`,
|
|
76
|
+
kind,
|
|
77
|
+
resource,
|
|
78
|
+
verb,
|
|
79
|
+
description: "",
|
|
80
|
+
// approverRole is owner-resolved (GetPolicy); empty placeholder. The
|
|
81
|
+
// requester never asserts it — task-tracking sets assigneeRole from the
|
|
82
|
+
// owner policy. Carried only so the title/button helpers have a value.
|
|
83
|
+
approverRole: "",
|
|
84
|
+
optInDefault: true,
|
|
85
|
+
selfActionAllowed: false,
|
|
86
|
+
expirySeconds: undefined,
|
|
87
|
+
actionButtonLabel: undefined,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
46
90
|
async function runCanonicalSequence(cfg, def, opts) {
|
|
47
91
|
const startMs = Date.now();
|
|
48
92
|
const pg = cfg.pgPool;
|
|
@@ -148,6 +192,8 @@ async function runCanonicalSequence(cfg, def, opts) {
|
|
|
148
192
|
});
|
|
149
193
|
return inserted;
|
|
150
194
|
});
|
|
195
|
+
// For an owned kind the owner IS the requester (D231 Rule 1).
|
|
196
|
+
const ownerService = ownerOf(def.kind);
|
|
151
197
|
emitAudit({
|
|
152
198
|
tenantId: opts.tenantId,
|
|
153
199
|
action: `${cfg.serviceName}.approval.requested`,
|
|
@@ -159,6 +205,9 @@ async function runCanonicalSequence(cfg, def, opts) {
|
|
|
159
205
|
kind: def.kind,
|
|
160
206
|
requester_membership_id: opts.requesterMembershipId,
|
|
161
207
|
audit_correlation_id: correlationId,
|
|
208
|
+
// D231 begin-event cross-owner provenance fields.
|
|
209
|
+
requester_service: cfg.serviceName,
|
|
210
|
+
owner_service: ownerService,
|
|
162
211
|
},
|
|
163
212
|
});
|
|
164
213
|
// [6] gRPC CreateTask
|
|
@@ -171,7 +220,7 @@ async function runCanonicalSequence(cfg, def, opts) {
|
|
|
171
220
|
description: def.description,
|
|
172
221
|
assigneeRole: policy.approverRole,
|
|
173
222
|
// Caller metadata first; lib-mandated fields last so they win
|
|
174
|
-
// (task-tracking's task.metadata payload).
|
|
223
|
+
// (task-tracking's task.metadata payload — the D231 begin-event).
|
|
175
224
|
metadata: {
|
|
176
225
|
...(opts.metadata ?? {}),
|
|
177
226
|
approvalId: row.id,
|
|
@@ -179,6 +228,10 @@ async function runCanonicalSequence(cfg, def, opts) {
|
|
|
179
228
|
kind: def.kind,
|
|
180
229
|
requesterMembershipId: opts.requesterMembershipId,
|
|
181
230
|
thresholdEvalContext: policy.thresholdParams,
|
|
231
|
+
// D231 begin-event cross-owner provenance fields (Rule 1 + Rule 3:
|
|
232
|
+
// task-tracking parses owner_service from the kind to call GetPolicy).
|
|
233
|
+
requester_service: cfg.serviceName,
|
|
234
|
+
owner_service: ownerService,
|
|
182
235
|
},
|
|
183
236
|
expiresAt,
|
|
184
237
|
idempotencyKey: opts.idempotencyKey,
|
|
@@ -233,6 +286,125 @@ async function runCanonicalSequence(cfg, def, opts) {
|
|
|
233
286
|
status: "task_created",
|
|
234
287
|
};
|
|
235
288
|
}
|
|
289
|
+
/**
|
|
290
|
+
* Cross-owner request sequence (D231 Rule 1). The kind is owned by ANOTHER
|
|
291
|
+
* service. The requester:
|
|
292
|
+
* - writes the deferred_action row to its OWN `<requester>_deferred_actions`,
|
|
293
|
+
* - emits the begin-event (audit + the CreateTask payload) carrying
|
|
294
|
+
* `requester_service`, `owner_service`, `kind`,
|
|
295
|
+
* - creates the task via task-tracking.
|
|
296
|
+
*
|
|
297
|
+
* It does NOT resolve a local policy, self-action exception, or opt-in
|
|
298
|
+
* short-circuit — those belong to the OWNER and are resolved by task-tracking
|
|
299
|
+
* via `ApprovalPolicyService.GetPolicy` (Rule 3). This function makes ZERO
|
|
300
|
+
* gRPC calls to the owner service.
|
|
301
|
+
*/
|
|
302
|
+
async function runCrossOwnerSequence(cfg, def, opts) {
|
|
303
|
+
const ownerService = ownerOf(def.kind);
|
|
304
|
+
const requesterService = cfg.serviceName;
|
|
305
|
+
// [5] Persist deferred-action row to the REQUESTER's local table + audit.
|
|
306
|
+
const correlationId = randomUUID();
|
|
307
|
+
const row = await cfg.pgPool.begin((tx) => insertDeferredAction(cfg, tx, {
|
|
308
|
+
tenantId: opts.tenantId,
|
|
309
|
+
kind: def.kind,
|
|
310
|
+
requesterMembershipId: opts.requesterMembershipId,
|
|
311
|
+
deferredActionPayload: opts.deferredActionPayload,
|
|
312
|
+
idempotencyKey: opts.idempotencyKey,
|
|
313
|
+
metadata: opts.metadata ?? {},
|
|
314
|
+
auditCorrelationId: correlationId,
|
|
315
|
+
}));
|
|
316
|
+
emitAudit({
|
|
317
|
+
tenantId: opts.tenantId,
|
|
318
|
+
action: `${requesterService}.approval.requested`,
|
|
319
|
+
targetKind: "deferred_action",
|
|
320
|
+
targetId: row.id,
|
|
321
|
+
metadata: {
|
|
322
|
+
...(opts.metadata ?? {}),
|
|
323
|
+
kind: def.kind,
|
|
324
|
+
requester_membership_id: opts.requesterMembershipId,
|
|
325
|
+
audit_correlation_id: correlationId,
|
|
326
|
+
requester_service: requesterService,
|
|
327
|
+
owner_service: ownerService,
|
|
328
|
+
},
|
|
329
|
+
});
|
|
330
|
+
// [6] gRPC CreateTask. The owner resolves approverRole + expiry via
|
|
331
|
+
// GetPolicy (task-tracking, Rule 3) — the requester does NOT set
|
|
332
|
+
// assigneeRole from a local policy. Expiry defaults to the requester's
|
|
333
|
+
// configured fallback; task-tracking overrides from the owner policy.
|
|
334
|
+
const expirySeconds = opts.expirySeconds ?? cfg.defaultExpirySeconds;
|
|
335
|
+
const expiresAt = new Date(Date.now() + expirySeconds * 1000).toISOString();
|
|
336
|
+
const taskRequest = {
|
|
337
|
+
tenantId: opts.tenantId,
|
|
338
|
+
kind: `approval:${def.kind}`,
|
|
339
|
+
title: titleFor(def, opts.metadata ?? {}),
|
|
340
|
+
description: def.description,
|
|
341
|
+
// No local approverRole for a cross-owner kind — task-tracking sets the
|
|
342
|
+
// assignee from the owner's GetPolicy. Empty = "owner-resolved".
|
|
343
|
+
assigneeRole: "",
|
|
344
|
+
metadata: {
|
|
345
|
+
...(opts.metadata ?? {}),
|
|
346
|
+
approvalId: row.id,
|
|
347
|
+
deferredActionId: row.id,
|
|
348
|
+
kind: def.kind,
|
|
349
|
+
requesterMembershipId: opts.requesterMembershipId,
|
|
350
|
+
// D231 begin-event cross-owner provenance fields.
|
|
351
|
+
requester_service: requesterService,
|
|
352
|
+
owner_service: ownerService,
|
|
353
|
+
},
|
|
354
|
+
expiresAt,
|
|
355
|
+
idempotencyKey: opts.idempotencyKey,
|
|
356
|
+
sourceModule: requesterService,
|
|
357
|
+
actionButton: opts.actionButton ?? {
|
|
358
|
+
label: def.actionButtonLabel ?? "Review",
|
|
359
|
+
moduleKey: requesterService,
|
|
360
|
+
actionKey: `approval:${def.shortKind}`,
|
|
361
|
+
params: { approvalId: row.id },
|
|
362
|
+
},
|
|
363
|
+
};
|
|
364
|
+
let taskResponse;
|
|
365
|
+
try {
|
|
366
|
+
taskResponse = await cfg.taskServiceClient.createTask(taskRequest);
|
|
367
|
+
}
|
|
368
|
+
catch (err) {
|
|
369
|
+
emitAudit({
|
|
370
|
+
tenantId: opts.tenantId,
|
|
371
|
+
action: `${requesterService}.approval.task_creation_failed`,
|
|
372
|
+
targetKind: "deferred_action",
|
|
373
|
+
targetId: row.id,
|
|
374
|
+
metadata: {
|
|
375
|
+
kind: def.kind,
|
|
376
|
+
owner_service: ownerService,
|
|
377
|
+
error: err instanceof Error ? err.message : String(err),
|
|
378
|
+
},
|
|
379
|
+
});
|
|
380
|
+
inc({
|
|
381
|
+
name: "approval_task_creation_failed_total",
|
|
382
|
+
family: "request_handler",
|
|
383
|
+
labels: {
|
|
384
|
+
service: requesterService,
|
|
385
|
+
kind: def.kind,
|
|
386
|
+
reason: classifyError(err),
|
|
387
|
+
},
|
|
388
|
+
});
|
|
389
|
+
throw err;
|
|
390
|
+
}
|
|
391
|
+
// [7] Persist task_id back.
|
|
392
|
+
await cfg.pgPool.unsafe(`UPDATE ${requesterService}_deferred_actions SET task_id = $1 WHERE id = $2`, [taskResponse.taskId, row.id]);
|
|
393
|
+
inc({
|
|
394
|
+
name: "approval_requested_total",
|
|
395
|
+
family: "request_handler",
|
|
396
|
+
labels: {
|
|
397
|
+
service: requesterService,
|
|
398
|
+
kind: def.kind,
|
|
399
|
+
outcome: "task_created",
|
|
400
|
+
},
|
|
401
|
+
});
|
|
402
|
+
return {
|
|
403
|
+
approvalId: row.id,
|
|
404
|
+
taskId: taskResponse.taskId,
|
|
405
|
+
status: "task_created",
|
|
406
|
+
};
|
|
407
|
+
}
|
|
236
408
|
async function persistShortCircuitRow(cfg, def, opts, status, approverMembershipId, note) {
|
|
237
409
|
const correlationId = randomUUID();
|
|
238
410
|
return cfg.pgPool.begin(async (tx) => {
|
package/dist/request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -168,6 +168,38 @@ export interface TaskCompletedEvent {
|
|
|
168
168
|
/** ISO8601 — when task-tracking published. */
|
|
169
169
|
publishedAt?: string;
|
|
170
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* `ApprovalPolicyService.GetPolicy` request (D231 Rule 2). Read-only policy
|
|
173
|
+
* resolution for a `(tenantId, kind)` against the OWNER service.
|
|
174
|
+
*/
|
|
175
|
+
export interface GetPolicyRequest {
|
|
176
|
+
tenantId: string;
|
|
177
|
+
kind: string;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* `ApprovalPolicyService.GetPolicy` response (D231 Rule 2 + Addendum). The
|
|
181
|
+
* owner returns its `approval_policies` row, or NOT_FOUND when there is no
|
|
182
|
+
* per-tenant override (the caller then defaults to the kind's
|
|
183
|
+
* `defaultApproverRole`). `thresholdParams` is parsed from EITHER the
|
|
184
|
+
* `google.protobuf.Struct threshold_params` field OR the
|
|
185
|
+
* `string threshold_params_json` field, whichever the owner ships (Addendum).
|
|
186
|
+
*/
|
|
187
|
+
export interface GetPolicyResponse {
|
|
188
|
+
approverRole: string;
|
|
189
|
+
thresholdParams: Record<string, unknown> | null;
|
|
190
|
+
poolMode: boolean;
|
|
191
|
+
enabled: boolean;
|
|
192
|
+
expiresInSeconds: number;
|
|
193
|
+
version: number;
|
|
194
|
+
}
|
|
195
|
+
/** gRPC client surface for an owner's `ApprovalPolicyService.GetPolicy`. */
|
|
196
|
+
export interface ApprovalPolicyServiceClient {
|
|
197
|
+
/** Resolve the policy for `(tenantId, kind)`. Returns `null` on NOT_FOUND
|
|
198
|
+
* (no per-tenant override — caller defaults to the kind's role). */
|
|
199
|
+
getPolicy(req: GetPolicyRequest): Promise<GetPolicyResponse | null>;
|
|
200
|
+
/** Optional — for graceful shutdown. */
|
|
201
|
+
close?: () => Promise<void>;
|
|
202
|
+
}
|
|
171
203
|
/** Resolved tenant-policy for one kind. */
|
|
172
204
|
export interface ResolvedPolicy {
|
|
173
205
|
enabled: boolean;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,sEAAsE;AACtE,mDAAmD;AAsBnD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,UAAU;IACV,QAAQ;IACR,KAAK;IACL,OAAO;IACP,MAAM;CACE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,sEAAsE;AACtE,mDAAmD;AAsBnD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,UAAU;IACV,QAAQ;IACR,KAAK;IACL,OAAO;IACP,MAAM;CACE,CAAC;AA2UX,qDAAqD;AACrD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAC9D,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AACjD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nodii/approval",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Approval library for the Nodii microservice stack — defineApprovalKinds + requestApproval + bindApprovalHandlers + per-tenant policies + completion-event consumer + migrate-gen. Polyglot ship: TS + Python + Go in parity. Spec: planning hub docKey=approval.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@nodii/audit-chain": "0.4.2",
|
|
42
|
-
"@nodii/grpc-auth": "0.5.
|
|
42
|
+
"@nodii/grpc-auth": "0.5.1",
|
|
43
43
|
"@nodii/idempotency": "0.3.1",
|
|
44
44
|
"@nodii/role-catalog": "0.1.7",
|
|
45
45
|
"@nodii/telemetry": "0.5.2",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"@nodii/audit-chain": "0.4.2",
|
|
60
|
-
"@nodii/grpc-auth": "0.5.
|
|
60
|
+
"@nodii/grpc-auth": "0.5.1",
|
|
61
61
|
"@nodii/idempotency": "0.3.1",
|
|
62
62
|
"@nodii/role-catalog": "0.1.7",
|
|
63
63
|
"@nodii/telemetry": "0.5.2"
|