@spinajs/authz-http-admin 3.0.13 → 3.0.15

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.
Files changed (188) hide show
  1. package/README.md +9 -8
  2. package/lib/cjs/controllers/AuthzAdminController.d.ts +35 -29
  3. package/lib/cjs/controllers/AuthzAdminController.d.ts.map +1 -1
  4. package/lib/cjs/controllers/AuthzAdminController.js +172 -175
  5. package/lib/cjs/controllers/AuthzAdminController.js.map +1 -1
  6. package/lib/cjs/dto/assignments.d.ts +33 -0
  7. package/lib/cjs/dto/assignments.d.ts.map +1 -0
  8. package/lib/cjs/dto/assignments.js +39 -0
  9. package/lib/cjs/dto/assignments.js.map +1 -0
  10. package/lib/cjs/dto/attributes.d.ts +20 -0
  11. package/lib/cjs/dto/attributes.d.ts.map +1 -0
  12. package/lib/cjs/dto/attributes.js +29 -0
  13. package/lib/cjs/dto/attributes.js.map +1 -0
  14. package/lib/cjs/dto/batch.d.ts +11 -0
  15. package/lib/cjs/dto/batch.d.ts.map +1 -0
  16. package/lib/cjs/dto/batch.js +10 -0
  17. package/lib/cjs/dto/batch.js.map +1 -0
  18. package/lib/cjs/dto/index.d.ts +9 -0
  19. package/lib/cjs/dto/index.d.ts.map +1 -0
  20. package/lib/cjs/dto/index.js +25 -0
  21. package/lib/cjs/dto/index.js.map +1 -0
  22. package/lib/cjs/dto/input.d.ts +8 -0
  23. package/lib/cjs/dto/input.d.ts.map +1 -0
  24. package/lib/cjs/dto/input.js +19 -0
  25. package/lib/cjs/dto/input.js.map +1 -0
  26. package/lib/cjs/dto/links.d.ts +28 -0
  27. package/lib/cjs/dto/links.d.ts.map +1 -0
  28. package/lib/cjs/dto/links.js +40 -0
  29. package/lib/cjs/dto/links.js.map +1 -0
  30. package/lib/cjs/dto/params.d.ts +19 -0
  31. package/lib/cjs/dto/params.d.ts.map +1 -0
  32. package/lib/cjs/dto/params.js +9 -0
  33. package/lib/cjs/dto/params.js.map +1 -0
  34. package/lib/cjs/dto/queries.d.ts +37 -0
  35. package/lib/cjs/dto/queries.d.ts.map +1 -0
  36. package/lib/cjs/dto/queries.js +70 -0
  37. package/lib/cjs/dto/queries.js.map +1 -0
  38. package/lib/cjs/dto/rules.d.ts +18 -0
  39. package/lib/cjs/dto/rules.d.ts.map +1 -0
  40. package/lib/cjs/dto/rules.js +34 -0
  41. package/lib/cjs/dto/rules.js.map +1 -0
  42. package/lib/cjs/index.d.ts +1 -0
  43. package/lib/cjs/index.d.ts.map +1 -1
  44. package/lib/cjs/index.js +1 -0
  45. package/lib/cjs/index.js.map +1 -1
  46. package/lib/cjs/routes/answers.d.ts +22 -0
  47. package/lib/cjs/routes/answers.d.ts.map +1 -0
  48. package/lib/cjs/routes/answers.js +121 -0
  49. package/lib/cjs/routes/answers.js.map +1 -0
  50. package/lib/cjs/routes/args.d.ts +59 -0
  51. package/lib/cjs/routes/args.d.ts.map +1 -0
  52. package/lib/cjs/routes/args.js +167 -0
  53. package/lib/cjs/routes/args.js.map +1 -0
  54. package/lib/cjs/routes/index.d.ts +3 -0
  55. package/lib/cjs/routes/index.d.ts.map +1 -1
  56. package/lib/cjs/routes/index.js +3 -0
  57. package/lib/cjs/routes/index.js.map +1 -1
  58. package/lib/cjs/routes/no-store.d.ts +10 -0
  59. package/lib/cjs/routes/no-store.d.ts.map +1 -0
  60. package/lib/cjs/routes/no-store.js +18 -0
  61. package/lib/cjs/routes/no-store.js.map +1 -0
  62. package/lib/cjs/routes/query.d.ts +6 -7
  63. package/lib/cjs/routes/query.d.ts.map +1 -1
  64. package/lib/cjs/routes/query.js +15 -62
  65. package/lib/cjs/routes/query.js.map +1 -1
  66. package/lib/cjs/schemas/answers.d.ts +7 -0
  67. package/lib/cjs/schemas/answers.d.ts.map +1 -0
  68. package/lib/cjs/schemas/answers.js +14 -0
  69. package/lib/cjs/schemas/answers.js.map +1 -0
  70. package/lib/cjs/schemas/commands.d.ts +4 -0
  71. package/lib/cjs/schemas/commands.d.ts.map +1 -1
  72. package/lib/cjs/schemas/commands.js +20 -12
  73. package/lib/cjs/schemas/commands.js.map +1 -1
  74. package/lib/cjs/schemas/document.d.ts +8 -17
  75. package/lib/cjs/schemas/document.d.ts.map +1 -1
  76. package/lib/cjs/schemas/document.js +53 -64
  77. package/lib/cjs/schemas/document.js.map +1 -1
  78. package/lib/cjs/schemas/index.d.ts +1 -1
  79. package/lib/cjs/schemas/index.d.ts.map +1 -1
  80. package/lib/cjs/schemas/index.js +1 -1
  81. package/lib/cjs/schemas/index.js.map +1 -1
  82. package/lib/cjs/schemas/primitives.d.ts +8 -1
  83. package/lib/cjs/schemas/primitives.d.ts.map +1 -1
  84. package/lib/cjs/schemas/primitives.js +25 -15
  85. package/lib/cjs/schemas/primitives.js.map +1 -1
  86. package/lib/cjs/schemas/provider.d.ts +4 -4
  87. package/lib/cjs/schemas/provider.d.ts.map +1 -1
  88. package/lib/cjs/schemas/provider.js +6 -6
  89. package/lib/cjs/schemas/provider.js.map +1 -1
  90. package/lib/mjs/controllers/AuthzAdminController.d.ts +35 -29
  91. package/lib/mjs/controllers/AuthzAdminController.d.ts.map +1 -1
  92. package/lib/mjs/controllers/AuthzAdminController.js +174 -177
  93. package/lib/mjs/controllers/AuthzAdminController.js.map +1 -1
  94. package/lib/mjs/dto/assignments.d.ts +33 -0
  95. package/lib/mjs/dto/assignments.d.ts.map +1 -0
  96. package/lib/mjs/dto/assignments.js +36 -0
  97. package/lib/mjs/dto/assignments.js.map +1 -0
  98. package/lib/mjs/dto/attributes.d.ts +20 -0
  99. package/lib/mjs/dto/attributes.d.ts.map +1 -0
  100. package/lib/mjs/dto/attributes.js +26 -0
  101. package/lib/mjs/dto/attributes.js.map +1 -0
  102. package/lib/mjs/dto/batch.d.ts +11 -0
  103. package/lib/mjs/dto/batch.d.ts.map +1 -0
  104. package/lib/mjs/dto/batch.js +7 -0
  105. package/lib/mjs/dto/batch.js.map +1 -0
  106. package/lib/mjs/dto/index.d.ts +9 -0
  107. package/lib/mjs/dto/index.d.ts.map +1 -0
  108. package/lib/mjs/dto/index.js +9 -0
  109. package/lib/mjs/dto/index.js.map +1 -0
  110. package/lib/mjs/dto/input.d.ts +8 -0
  111. package/lib/mjs/dto/input.d.ts.map +1 -0
  112. package/lib/mjs/dto/input.js +15 -0
  113. package/lib/mjs/dto/input.js.map +1 -0
  114. package/lib/mjs/dto/links.d.ts +28 -0
  115. package/lib/mjs/dto/links.d.ts.map +1 -0
  116. package/lib/mjs/dto/links.js +37 -0
  117. package/lib/mjs/dto/links.js.map +1 -0
  118. package/lib/mjs/dto/params.d.ts +19 -0
  119. package/lib/mjs/dto/params.d.ts.map +1 -0
  120. package/lib/mjs/dto/params.js +6 -0
  121. package/lib/mjs/dto/params.js.map +1 -0
  122. package/lib/mjs/dto/queries.d.ts +37 -0
  123. package/lib/mjs/dto/queries.d.ts.map +1 -0
  124. package/lib/mjs/dto/queries.js +66 -0
  125. package/lib/mjs/dto/queries.js.map +1 -0
  126. package/lib/mjs/dto/rules.d.ts +18 -0
  127. package/lib/mjs/dto/rules.d.ts.map +1 -0
  128. package/lib/mjs/dto/rules.js +31 -0
  129. package/lib/mjs/dto/rules.js.map +1 -0
  130. package/lib/mjs/index.d.ts +1 -0
  131. package/lib/mjs/index.d.ts.map +1 -1
  132. package/lib/mjs/index.js +1 -0
  133. package/lib/mjs/index.js.map +1 -1
  134. package/lib/mjs/routes/answers.d.ts +22 -0
  135. package/lib/mjs/routes/answers.d.ts.map +1 -0
  136. package/lib/mjs/routes/answers.js +115 -0
  137. package/lib/mjs/routes/answers.js.map +1 -0
  138. package/lib/mjs/routes/args.d.ts +59 -0
  139. package/lib/mjs/routes/args.d.ts.map +1 -0
  140. package/lib/mjs/routes/args.js +160 -0
  141. package/lib/mjs/routes/args.js.map +1 -0
  142. package/lib/mjs/routes/index.d.ts +3 -0
  143. package/lib/mjs/routes/index.d.ts.map +1 -1
  144. package/lib/mjs/routes/index.js +3 -0
  145. package/lib/mjs/routes/index.js.map +1 -1
  146. package/lib/mjs/routes/no-store.d.ts +10 -0
  147. package/lib/mjs/routes/no-store.d.ts.map +1 -0
  148. package/lib/mjs/routes/no-store.js +14 -0
  149. package/lib/mjs/routes/no-store.js.map +1 -0
  150. package/lib/mjs/routes/query.d.ts +6 -7
  151. package/lib/mjs/routes/query.d.ts.map +1 -1
  152. package/lib/mjs/routes/query.js +15 -62
  153. package/lib/mjs/routes/query.js.map +1 -1
  154. package/lib/mjs/schemas/answers.d.ts +7 -0
  155. package/lib/mjs/schemas/answers.d.ts.map +1 -0
  156. package/lib/mjs/schemas/answers.js +11 -0
  157. package/lib/mjs/schemas/answers.js.map +1 -0
  158. package/lib/mjs/schemas/commands.d.ts +4 -0
  159. package/lib/mjs/schemas/commands.d.ts.map +1 -1
  160. package/lib/mjs/schemas/commands.js +19 -12
  161. package/lib/mjs/schemas/commands.js.map +1 -1
  162. package/lib/mjs/schemas/document.d.ts +8 -17
  163. package/lib/mjs/schemas/document.d.ts.map +1 -1
  164. package/lib/mjs/schemas/document.js +53 -63
  165. package/lib/mjs/schemas/document.js.map +1 -1
  166. package/lib/mjs/schemas/index.d.ts +1 -1
  167. package/lib/mjs/schemas/index.d.ts.map +1 -1
  168. package/lib/mjs/schemas/index.js +1 -1
  169. package/lib/mjs/schemas/index.js.map +1 -1
  170. package/lib/mjs/schemas/primitives.d.ts +8 -1
  171. package/lib/mjs/schemas/primitives.d.ts.map +1 -1
  172. package/lib/mjs/schemas/primitives.js +22 -14
  173. package/lib/mjs/schemas/primitives.js.map +1 -1
  174. package/lib/mjs/schemas/provider.d.ts +4 -4
  175. package/lib/mjs/schemas/provider.d.ts.map +1 -1
  176. package/lib/mjs/schemas/provider.js +6 -6
  177. package/lib/mjs/schemas/provider.js.map +1 -1
  178. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  179. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  180. package/package.json +13 -12
  181. package/lib/cjs/schemas/bodies.d.ts +0 -17
  182. package/lib/cjs/schemas/bodies.d.ts.map +0 -1
  183. package/lib/cjs/schemas/bodies.js +0 -35
  184. package/lib/cjs/schemas/bodies.js.map +0 -1
  185. package/lib/mjs/schemas/bodies.d.ts +0 -17
  186. package/lib/mjs/schemas/bodies.d.ts.map +0 -1
  187. package/lib/mjs/schemas/bodies.js +0 -32
  188. package/lib/mjs/schemas/bodies.js.map +0 -1
@@ -3,12 +3,19 @@ export declare const text: JsonSchema;
3
3
  export declare const nullableDateTime: JsonSchema;
4
4
  export declare const tags: JsonSchema;
5
5
  export declare const anyObject: JsonSchema;
6
+ export declare const rowId: JsonSchema;
7
+ export declare const roleName: JsonSchema;
6
8
  export declare const resourceRef: JsonSchema;
7
9
  export declare const principalRef: JsonSchema;
10
+ export declare function obj(required: readonly string[], properties: Record<string, JsonSchema>, description?: string): JsonSchema;
11
+ /** An object that refuses keys it does not list. */
12
+ export declare function closed(required: readonly string[], properties: Record<string, JsonSchema>, description?: string): JsonSchema;
8
13
  export declare const roleSet: JsonSchema;
9
14
  export declare const subjectSet: JsonSchema;
10
15
  export declare const assignmentSubject: JsonSchema;
11
- export declare function obj(required: readonly string[], properties: Record<string, JsonSchema>, description?: string): JsonSchema;
16
+ export declare const writeOptions: Record<string, JsonSchema>;
17
+ /** The body of POST /authz/commands with `items` as the schema of one command. */
18
+ export declare function batchOf(items: JsonSchema): JsonSchema;
12
19
  /** The body of POST /authz/commands over the given command schemas. */
13
20
  export declare function commandBatch(commands: readonly JsonSchema[]): JsonSchema;
14
21
  export declare function command(kind: string, required: readonly string[], properties: Record<string, JsonSchema>, description: string): JsonSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/schemas/primitives.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,eAAO,MAAM,IAAI,EAAE,UAA+B,CAAC;AACnD,eAAO,MAAM,gBAAgB,EAAE,UAAmK,CAAC;AACnM,eAAO,MAAM,IAAI,EAAE,UAA2C,CAAC;AAC/D,eAAO,MAAM,SAAS,EAAE,UAA2D,CAAC;AAEpF,eAAO,MAAM,WAAW,EAAE,UAIzB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,UAI1B,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,UAA4G,CAAC;AAEnI,eAAO,MAAM,UAAU,EAAE,UAAgF,CAAC;AAE1G,eAAO,MAAM,iBAAiB,EAAE,UAAmH,CAAC;AAEpJ,wBAAgB,GAAG,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAEzH;AAQD,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,CAExE;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAE1I"}
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/schemas/primitives.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,eAAO,MAAM,IAAI,EAAE,UAA+B,CAAC;AACnD,eAAO,MAAM,gBAAgB,EAAE,UAAmK,CAAC;AACnM,eAAO,MAAM,IAAI,EAAE,UAA2C,CAAC;AAC/D,eAAO,MAAM,SAAS,EAAE,UAA2D,CAAC;AACpF,eAAO,MAAM,KAAK,EAAE,UAA2B,CAAC;AAChD,eAAO,MAAM,QAAQ,EAAE,UAA6B,CAAC;AAErD,eAAO,MAAM,WAAW,EAAE,UAKzB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,UAAsF,CAAC;AAElH,wBAAgB,GAAG,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAEzH;AAED,oDAAoD;AACpD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAE5H;AAED,eAAO,MAAM,OAAO,EAAE,UAA8E,CAAC;AAErG,eAAO,MAAM,UAAU,EAAE,UAA8C,CAAC;AAExE,eAAO,MAAM,iBAAiB,EAAE,UAAmH,CAAC;AAEpJ,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAInD,CAAC;AAEF,kFAAkF;AAClF,wBAAgB,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAErD;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,CAExE;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAE1I"}
@@ -1,39 +1,49 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assignmentSubject = exports.subjectSet = exports.roleSet = exports.principalRef = exports.resourceRef = exports.anyObject = exports.tags = exports.nullableDateTime = exports.text = void 0;
3
+ exports.writeOptions = exports.assignmentSubject = exports.subjectSet = exports.roleSet = exports.principalRef = exports.resourceRef = exports.roleName = exports.rowId = exports.anyObject = exports.tags = exports.nullableDateTime = exports.text = void 0;
4
4
  exports.obj = obj;
5
+ exports.closed = closed;
6
+ exports.batchOf = batchOf;
5
7
  exports.commandBatch = commandBatch;
6
8
  exports.command = command;
9
+ const authz_1 = require("@spinajs/authz");
7
10
  exports.text = { type: 'string' };
8
11
  exports.nullableDateTime = { type: 'string', format: 'date-time', nullable: true, description: 'ISO 8601 date-time with Z or an offset, read as a Date; null clears the expiry' };
9
12
  exports.tags = { type: 'array', items: exports.text };
10
13
  exports.anyObject = { type: 'object', additionalProperties: true };
14
+ exports.rowId = { ...authz_1.idField };
15
+ exports.roleName = { ...authz_1.nameField };
11
16
  exports.resourceRef = {
12
17
  type: 'object',
18
+ additionalProperties: false,
13
19
  required: ['type'],
14
- properties: { type: exports.text, id: { ...exports.text, description: 'absent for a type-level scope' } },
20
+ properties: { type: { ...authz_1.typeField }, id: { ...authz_1.idField, description: 'absent for a type-level scope' } },
15
21
  };
16
- exports.principalRef = {
17
- type: 'object',
18
- required: ['type', 'id'],
19
- properties: { type: exports.text, id: exports.text },
20
- };
21
- exports.roleSet = { type: 'object', required: ['role', 'scope'], properties: { role: exports.text, scope: exports.resourceRef } };
22
- exports.subjectSet = { type: 'object', required: ['set'], properties: { set: exports.roleSet } };
23
- exports.assignmentSubject = { description: 'A principal, or the holders of a role at a scope', oneOf: [exports.principalRef, exports.subjectSet] };
22
+ exports.principalRef = { ...authz_1.principalRefField, properties: { ...authz_1.principalRefField.properties } };
24
23
  function obj(required, properties, description) {
25
24
  return { type: 'object', ...(description ? { description } : {}), ...(required.length ? { required } : {}), properties };
26
25
  }
27
- const writeOptions = {
28
- reason: { ...exports.text, description: 'goes to the audit trail' },
29
- idempotencyKey: { ...exports.text, description: 'a retried batch with the same key returns the first result' },
26
+ /** An object that refuses keys it does not list. */
27
+ function closed(required, properties, description) {
28
+ return { ...obj(required, properties, description), additionalProperties: false };
29
+ }
30
+ exports.roleSet = closed(['role', 'scope'], { role: exports.roleName, scope: exports.resourceRef });
31
+ exports.subjectSet = closed(['set'], { set: exports.roleSet });
32
+ exports.assignmentSubject = { description: 'A principal, or the holders of a role at a scope', oneOf: [exports.principalRef, exports.subjectSet] };
33
+ exports.writeOptions = {
34
+ reason: { ...authz_1.reasonField, description: 'goes to the audit trail' },
35
+ idempotencyKey: { ...authz_1.idempotencyKeyField, description: 'a retried request with the same key returns the first result' },
30
36
  dryRun: { type: 'boolean', description: 'validate and guard, then roll back' },
31
37
  };
38
+ /** The body of POST /authz/commands with `items` as the schema of one command. */
39
+ function batchOf(items) {
40
+ return closed(['commands'], { commands: { type: 'array', items }, ...exports.writeOptions }, 'POST /authz/commands: the commands run in one transaction, in order; the first failure rolls the batch back');
41
+ }
32
42
  /** The body of POST /authz/commands over the given command schemas. */
33
43
  function commandBatch(commands) {
34
- return obj(['commands'], { commands: { type: 'array', items: { oneOf: commands } }, ...writeOptions }, 'POST /authz/commands: the commands run in one transaction, in order; the first failure rolls the batch back');
44
+ return batchOf({ oneOf: commands });
35
45
  }
36
46
  function command(kind, required, properties, description) {
37
- return obj(['kind', ...required], { kind: { type: 'string', enum: [kind] }, ...properties }, description);
47
+ return closed(['kind', ...required], { kind: { type: 'string', enum: [kind] }, ...properties }, description);
38
48
  }
39
49
  //# sourceMappingURL=primitives.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../../src/schemas/primitives.ts"],"names":[],"mappings":";;;;;;AAEa,QAAA,IAAI,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACtC,QAAA,gBAAgB,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gFAAgF,EAAE,CAAC;AACtL,QAAA,IAAI,GAAe,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAA,IAAI,EAAE,CAAC;AAClD,QAAA,SAAS,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;AAEvE,QAAA,WAAW,GAAe;IACrC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,MAAM,CAAC;IAClB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAA,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,QAAA,IAAI,EAAE,WAAW,EAAE,+BAA+B,EAAE,EAAE;CAC1F,CAAC;AAEW,QAAA,YAAY,GAAe;IACtC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;IACxB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAA,IAAI,EAAE,EAAE,EAAE,QAAA,IAAI,EAAE;CACrC,CAAC;AAEW,QAAA,OAAO,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAA,IAAI,EAAE,KAAK,EAAE,QAAA,WAAW,EAAE,EAAE,CAAC;AAEtH,QAAA,UAAU,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,QAAA,OAAO,EAAE,EAAE,CAAC;AAE7F,QAAA,iBAAiB,GAAe,EAAE,WAAW,EAAE,kDAAkD,EAAE,KAAK,EAAE,CAAC,QAAA,YAAY,EAAE,QAAA,UAAU,CAAC,EAAE,CAAC;AAEpJ,aAAoB,QAA2B,EAAE,UAAsC,EAAE,WAAoB;IAC3G,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;AAC3H,CAAC;AAED,MAAM,YAAY,GAAG;IACnB,MAAM,EAAE,EAAE,GAAG,QAAA,IAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE;IAC3D,cAAc,EAAE,EAAE,GAAG,QAAA,IAAI,EAAE,WAAW,EAAE,4DAA4D,EAAE;IACtG,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oCAAoC,EAAE;CAC/E,CAAC;AAEF,uEAAuE;AACvE,sBAA6B,QAA+B;IAC1D,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,EAAE,6GAA6G,CAAC,CAAC;AACxN,CAAC;AAED,iBAAwB,IAAY,EAAE,QAA2B,EAAE,UAAsC,EAAE,WAAmB;IAC5H,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;AAC5G,CAAC"}
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../../src/schemas/primitives.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { SchemaProvider } from '@spinajs/validation';
2
2
  import type { JsonSchema } from './primitives.js';
3
3
  import { AuthzCommandSchemaRegistry } from './registry.js';
4
- /** Every schema of the admin routes by name, as the swagger document names them, over the built-in commands. */
4
+ /** The answer and error schemas of the admin routes by name, as the swagger document names them. Request schemas live on the DTOs. */
5
5
  export declare const AUTHZ_ADMIN_SCHEMAS: Readonly<Record<string, JsonSchema>>;
6
6
  /**
7
- * Serves the schemas to http-swagger by the type names the controller's `@response` tags use.
8
- * Nothing but the swagger builder asks a SchemaProvider: request validation reads `@Schema`
9
- * metadata and route argument schemas, neither of which these routes carry.
7
+ * Serves the answer schemas and the batch body to http-swagger by the type names the controller's
8
+ * `@response` tags and `describeAuthzAdminDocument` use. The batch body is built from the registered
9
+ * AuthzCommandSchemaSources on every call, as the batch route validates against it.
10
10
  */
11
11
  export declare class AuthzAdminSchemaProvider extends SchemaProvider {
12
12
  protected Registry: AuthzCommandSchemaRegistry;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/schemas/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAE3D,gHAAgH;AAChH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAiB,CAAC;AAEvF;;;;GAIG;AACH,qBACa,wBAAyB,SAAQ,cAAc;IAE1D,SAAS,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAE/C,2GAA2G;IACpG,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAErD;IAEM,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAGtE;CACF"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/schemas/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAE3D,sIAAsI;AACtI,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAkB,CAAC;AAExF;;;;GAIG;AACH,qBACa,wBAAyB,SAAQ,cAAc;IAE1D,SAAS,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAE/C,2GAA2G;IACpG,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAErD;IAEM,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAGtE;CACF"}
@@ -45,14 +45,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
45
45
  exports.AuthzAdminSchemaProvider = exports.AUTHZ_ADMIN_SCHEMAS = void 0;
46
46
  const di_1 = require("@spinajs/di");
47
47
  const validation_1 = require("@spinajs/validation");
48
- const bodies = __importStar(require("./bodies.js"));
48
+ const answers = __importStar(require("./answers.js"));
49
49
  const registry_js_1 = require("./registry.js");
50
- /** Every schema of the admin routes by name, as the swagger document names them, over the built-in commands. */
51
- exports.AUTHZ_ADMIN_SCHEMAS = { ...bodies };
50
+ /** The answer and error schemas of the admin routes by name, as the swagger document names them. Request schemas live on the DTOs. */
51
+ exports.AUTHZ_ADMIN_SCHEMAS = { ...answers };
52
52
  /**
53
- * Serves the schemas to http-swagger by the type names the controller's `@response` tags use.
54
- * Nothing but the swagger builder asks a SchemaProvider: request validation reads `@Schema`
55
- * metadata and route argument schemas, neither of which these routes carry.
53
+ * Serves the answer schemas and the batch body to http-swagger by the type names the controller's
54
+ * `@response` tags and `describeAuthzAdminDocument` use. The batch body is built from the registered
55
+ * AuthzCommandSchemaSources on every call, as the batch route validates against it.
56
56
  */
57
57
  let AuthzAdminSchemaProvider = class AuthzAdminSchemaProvider extends validation_1.SchemaProvider {
58
58
  /** Every schema of the admin routes by name, with AuthzAdminBatch listing the registered command kinds. */
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/schemas/provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAAqD;AACrD,oDAAqD;AAErD,MAAY,MAAM,wCAAoB;AAEtC,+CAA2D;AAE3D,gHAAgH;AACnG,QAAA,mBAAmB,GAAyC,EAAE,GAAG,MAAM,EAAE,CAAC;AAEvF;;;;GAIG;AAEI,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,2BAAc;IAI1D,2GAA2G;IACpG,OAAO;QACZ,OAAO,EAAE,GAAG,QAAA,mBAAmB,EAAE,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;IAC5E,CAAC;IAEM,SAAS,CAAC,QAAgB;QAC/B,IAAI,QAAQ,KAAK,iBAAiB;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjE,OAAO,MAAM,CAAC,MAAM,CAAC,QAAA,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAA,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,CAAC;CACF,CAAA;;AAXW;IADT,IAAA,eAAU,EAAC,wCAA0B,CAAC;8BACnB,wCAA0B;0DAAC;mCAFpC,wBAAwB;IADpC,IAAA,eAAU,EAAC,2BAAc,CAAC;GACd,wBAAwB,CAapC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/schemas/provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAAqD;AACrD,oDAAqD;AAErD,MAAY,OAAO,yCAAqB;AAExC,+CAA2D;AAE3D,sIAAsI;AACzH,QAAA,mBAAmB,GAAyC,EAAE,GAAG,OAAO,EAAE,CAAC;AAExF;;;;GAIG;AAEI,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,2BAAc;IAI1D,2GAA2G;IACpG,OAAO;QACZ,OAAO,EAAE,GAAG,QAAA,mBAAmB,EAAE,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;IAC5E,CAAC;IAEM,SAAS,CAAC,QAAgB;QAC/B,IAAI,QAAQ,KAAK,iBAAiB;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjE,OAAO,MAAM,CAAC,MAAM,CAAC,QAAA,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAA,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,CAAC;CACF,CAAA;;AAXW;IADT,IAAA,eAAU,EAAC,wCAA0B,CAAC;8BACnB,wCAA0B;0DAAC;mCAFpC,wBAAwB;IADpC,IAAA,eAAU,EAAC,2BAAc,CAAC;GACd,wBAAwB,CAapC"}
@@ -1,15 +1,21 @@
1
1
  import { AuthzDomains } from '@spinajs/authz';
2
- import type { AuthzAdmin, AuthzAdminQuery, AuthzCommand } from '@spinajs/authz';
2
+ import type { AuthzAdmin, AuthzAdminQuery, AuthzCommand, Principal } from '@spinajs/authz';
3
3
  import { BaseController } from '@spinajs/http';
4
- import type { Request, Response } from '@spinajs/http';
4
+ import type { Response } from '@spinajs/http';
5
5
  import '../schemas/provider.js';
6
+ import { AuthzAssignmentGrant, AuthzAssignmentPatch } from '../dto/assignments.js';
7
+ import { AuthzAttributesBody, AuthzAttributesPatch } from '../dto/attributes.js';
8
+ import type { AuthzAdminCommandBatch } from '../dto/batch.js';
9
+ import { AuthzLinkCreate, AuthzLinkPatch } from '../dto/links.js';
10
+ import { AuthzAssignmentsQuery, AuthzHoldersQuery, AuthzListQuery, AuthzOffsetListQuery, AuthzWriteOptionsQuery } from '../dto/queries.js';
11
+ import { AuthzPolicyBody, AuthzRuleBody } from '../dto/rules.js';
6
12
  /**
7
13
  * Admin routes over the management API of the configured domain (`authz.http.admin.domain`).
8
14
  *
9
15
  * The routes check authentication only: the actor is always the request principal, and every
10
- * permission, validation and guard check runs in AuthzAdmin, as for an in-process caller (design
11
- * §6.6.5). A refused request answers `{ error: { code, message, field? } }`; a write answers
12
- * `{ results }`, one entry per command.
16
+ * permission and guard check runs in AuthzAdmin, as for an in-process caller (design §6.6.5). The
17
+ * inputs are DTOs checked against their schemas first; a refused request answers
18
+ * `{ error: { code, message, field? } }`, a write `{ results }`, one entry per command.
13
19
  *
14
20
  * @tags Authz admin
15
21
  */
@@ -17,13 +23,13 @@ export declare class AuthzAdminController extends BaseController {
17
23
  protected AdminDomain: string;
18
24
  protected Domains: AuthzDomains;
19
25
  /**
20
- * Runs a route on the AuthzAdmin of the domain the AuthzDomainResolver names for `req`, `authz.http.admin.domain` being its fallback and the domain without a request.
21
- * An AuthzAdminFailure becomes its status with `{ error }`, a domain no live domain bears 403 `unknown_domain`, anything else propagates.
26
+ * Runs a route on the AuthzAdmin of `domain` (the one `@AdminDomain()` resolved), `authz.http.admin.domain` without one.
27
+ * An AuthzAdminFailure becomes its status with `{ error }`, anything else propagates.
22
28
  */
23
- protected guarded(fn: (admin: AuthzAdmin) => Promise<Response>, req?: Request): Promise<Response>;
29
+ protected guarded(fn: (admin: AuthzAdmin) => Promise<Response>, domain?: string): Promise<Response>;
24
30
  /** One batch built from the route, with the options of the query string. */
25
- protected single(req: Request, build: () => AuthzCommand[]): Promise<Response<any>>;
26
- protected list(req: Request, build: () => AuthzAdminQuery): Promise<Response<any>>;
31
+ protected single(domain: string, actor: Principal, options: AuthzWriteOptionsQuery, build: () => AuthzCommand[]): Promise<Response<any>>;
32
+ protected list(domain: string, actor: Principal, build: () => AuthzAdminQuery): Promise<Response<any>>;
27
33
  /**
28
34
  * Run a batch of commands
29
35
  * Runs the commands in order in one transaction on the configured domain; the first failure rolls the batch back and its status is the answer.
@@ -37,7 +43,7 @@ export declare class AuthzAdminController extends BaseController {
37
43
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
38
44
  * @response 500 {AuthzAdminError} hook_error: an action hook threw or timed out
39
45
  */
40
- commands(req: Request): Promise<Response<any>>;
46
+ commands(domain: string, actor: Principal, batch: AuthzAdminCommandBatch): Promise<Response<any>>;
41
47
  /**
42
48
  * List assignments
43
49
  * Lists assignments, filtered by the query.
@@ -47,7 +53,7 @@ export declare class AuthzAdminController extends BaseController {
47
53
  * @response 401 Unauthorized: a valid session or token is required
48
54
  * @response 403 {AuthzAdminError} forbidden: the caller lacks the read permission at the scope
49
55
  */
50
- listAssignments(req: Request): Promise<Response<any>>;
56
+ listAssignments(domain: string, actor: Principal, query: AuthzAssignmentsQuery): Promise<Response<any>>;
51
57
  /**
52
58
  * List holders
53
59
  * Who holds a permission on a resource through role assignments on it, its ancestors or $global; each principal is verified by a fresh check.
@@ -57,7 +63,7 @@ export declare class AuthzAdminController extends BaseController {
57
63
  * @response 401 Unauthorized: a valid session or token is required
58
64
  * @response 403 {AuthzAdminError} forbidden: the caller lacks authz:holders.read at the resource, or the resource is unknown
59
65
  */
60
- listHolders(req: Request): Promise<Response<any>>;
66
+ listHolders(domain: string, actor: Principal, query: AuthzHoldersQuery): Promise<Response<any>>;
61
67
  /**
62
68
  * Grant a role
63
69
  * Grants a role to a subject at a scope (assignment.grant).
@@ -71,7 +77,7 @@ export declare class AuthzAdminController extends BaseController {
71
77
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
72
78
  * @response 500 {AuthzAdminError} hook_error: an action hook threw or timed out
73
79
  */
74
- grant(req: Request): Promise<Response<any>>;
80
+ grant(domain: string, actor: Principal, body: AuthzAssignmentGrant, options: AuthzWriteOptionsQuery): Promise<Response<any>>;
75
81
  /**
76
82
  * Change an assignment
77
83
  * Changes the tags or the expiry of an assignment.
@@ -85,7 +91,7 @@ export declare class AuthzAdminController extends BaseController {
85
91
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
86
92
  * @response 500 {AuthzAdminError} hook_error: an action hook threw or timed out
87
93
  */
88
- patchAssignment(req: Request): Promise<Response<any>>;
94
+ patchAssignment(domain: string, actor: Principal, id: string, body: AuthzAssignmentPatch, options: AuthzWriteOptionsQuery): Promise<Response<any>>;
89
95
  /**
90
96
  * Revoke an assignment
91
97
  * Revokes the assignment with the path id.
@@ -98,7 +104,7 @@ export declare class AuthzAdminController extends BaseController {
98
104
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
99
105
  * @response 500 {AuthzAdminError} hook_error: an action hook threw or timed out
100
106
  */
101
- revoke(req: Request): Promise<Response<any>>;
107
+ revoke(domain: string, actor: Principal, id: string, options: AuthzWriteOptionsQuery): Promise<Response<any>>;
102
108
  /**
103
109
  * List share links
104
110
  * Lists the share links, filtered by the query. A listing never carries a token or its hash: the token is shown once, when the link is created.
@@ -108,7 +114,7 @@ export declare class AuthzAdminController extends BaseController {
108
114
  * @response 401 Unauthorized: a valid session or token is required
109
115
  * @response 403 {AuthzAdminError} forbidden: the caller lacks the read permission at the scope
110
116
  */
111
- listLinks(req: Request): Promise<Response<any>>;
117
+ listLinks(domain: string, actor: Principal, query: AuthzListQuery): Promise<Response<any>>;
112
118
  /**
113
119
  * Create a share link
114
120
  * Creates a share link that grants a role at a scope (link.create). The result carries the link id and its token: the token is shown once, here, and every answer the route sends carries `Cache-Control: no-store` (the 401 of the authentication check comes before the route and holds no token). A dry run or a retried request (same idempotency key) answers without the token.
@@ -122,7 +128,7 @@ export declare class AuthzAdminController extends BaseController {
122
128
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
123
129
  * @response 500 {AuthzAdminError} hook_error: an action hook threw or timed out
124
130
  */
125
- createLink(req: Request): Promise<Response<any>>;
131
+ createLink(domain: string, actor: Principal, body: AuthzLinkCreate, options: AuthzWriteOptionsQuery): Promise<Response<any>>;
126
132
  /**
127
133
  * Change a share link
128
134
  * Changes the expiry, attributes, role or tags of the link with the path id (link.update). The answer never carries the token.
@@ -136,7 +142,7 @@ export declare class AuthzAdminController extends BaseController {
136
142
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
137
143
  * @response 500 {AuthzAdminError} hook_error: an action hook threw or timed out
138
144
  */
139
- patchLink(req: Request): Promise<Response<any>>;
145
+ patchLink(domain: string, actor: Principal, id: string, body: AuthzLinkPatch, options: AuthzWriteOptionsQuery): Promise<Response<any>>;
140
146
  /**
141
147
  * Revoke a share link
142
148
  * Revokes the link with the path id and the role it grants (link.revoke); its token opens nothing from then on.
@@ -149,7 +155,7 @@ export declare class AuthzAdminController extends BaseController {
149
155
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
150
156
  * @response 500 {AuthzAdminError} hook_error: an action hook threw or timed out
151
157
  */
152
- revokeLink(req: Request): Promise<Response<any>>;
158
+ revokeLink(domain: string, actor: Principal, id: string, options: AuthzWriteOptionsQuery): Promise<Response<any>>;
153
159
  /**
154
160
  * List rules
155
161
  * Lists the RBAC rules held as rows.
@@ -159,7 +165,7 @@ export declare class AuthzAdminController extends BaseController {
159
165
  * @response 401 Unauthorized: a valid session or token is required
160
166
  * @response 403 {AuthzAdminError} forbidden: the caller lacks the read permission at the scope
161
167
  */
162
- listRules(req: Request): Promise<Response<any>>;
168
+ listRules(domain: string, actor: Principal, query: AuthzListQuery): Promise<Response<any>>;
163
169
  /**
164
170
  * Put a rule
165
171
  * Inserts or replaces the RBAC rule with the path id.
@@ -173,7 +179,7 @@ export declare class AuthzAdminController extends BaseController {
173
179
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
174
180
  * @response 500 {AuthzAdminError} hook_error: an action hook threw or timed out
175
181
  */
176
- putRule(req: Request): Promise<Response<any>>;
182
+ putRule(domain: string, actor: Principal, id: string, body: AuthzRuleBody, options: AuthzWriteOptionsQuery): Promise<Response<any>>;
177
183
  /**
178
184
  * Delete a rule
179
185
  * Deletes the RBAC rule with the path id.
@@ -186,7 +192,7 @@ export declare class AuthzAdminController extends BaseController {
186
192
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
187
193
  * @response 500 {AuthzAdminError} hook_error: an action hook threw or timed out
188
194
  */
189
- deleteRule(req: Request): Promise<Response<any>>;
195
+ deleteRule(domain: string, actor: Principal, id: string, options: AuthzWriteOptionsQuery): Promise<Response<any>>;
190
196
  /**
191
197
  * List policies
192
198
  * Lists the ABAC policies held as rows.
@@ -196,7 +202,7 @@ export declare class AuthzAdminController extends BaseController {
196
202
  * @response 401 Unauthorized: a valid session or token is required
197
203
  * @response 403 {AuthzAdminError} forbidden: the caller lacks the read permission at the scope
198
204
  */
199
- listPolicies(req: Request): Promise<Response<any>>;
205
+ listPolicies(domain: string, actor: Principal, query: AuthzOffsetListQuery): Promise<Response<any>>;
200
206
  /**
201
207
  * Put a policy
202
208
  * Inserts or replaces the ABAC policy with the path id.
@@ -210,7 +216,7 @@ export declare class AuthzAdminController extends BaseController {
210
216
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
211
217
  * @response 500 {AuthzAdminError} hook_error: an action hook threw or timed out
212
218
  */
213
- putPolicy(req: Request): Promise<Response<any>>;
219
+ putPolicy(domain: string, actor: Principal, id: string, body: AuthzPolicyBody, options: AuthzWriteOptionsQuery): Promise<Response<any>>;
214
220
  /**
215
221
  * Delete a policy
216
222
  * Deletes the ABAC policy with the path id.
@@ -223,7 +229,7 @@ export declare class AuthzAdminController extends BaseController {
223
229
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
224
230
  * @response 500 {AuthzAdminError} hook_error: an action hook threw or timed out
225
231
  */
226
- deletePolicy(req: Request): Promise<Response<any>>;
232
+ deletePolicy(domain: string, actor: Principal, id: string, options: AuthzWriteOptionsQuery): Promise<Response<any>>;
227
233
  /**
228
234
  * Read scope attributes
229
235
  * Returns the attributes of the scope node `<type>:<id>`.
@@ -232,7 +238,7 @@ export declare class AuthzAdminController extends BaseController {
232
238
  * @response 401 Unauthorized: a valid session or token is required
233
239
  * @response 403 {AuthzAdminError} forbidden: the caller lacks the read permission at the scope
234
240
  */
235
- attributes(req: Request): Promise<Response<any>>;
241
+ attributes(domain: string, actor: Principal, type: string, id: string): Promise<Response<any>>;
236
242
  /**
237
243
  * Merge scope attributes
238
244
  * Deep-merges the body into the attributes of the scope node; null deletes a path.
@@ -246,7 +252,7 @@ export declare class AuthzAdminController extends BaseController {
246
252
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
247
253
  * @response 500 {AuthzAdminError} hook_error: an action hook threw or timed out
248
254
  */
249
- patchAttributes(req: Request): Promise<Response<any>>;
255
+ patchAttributes(domain: string, actor: Principal, type: string, id: string, body: AuthzAttributesPatch, options: AuthzWriteOptionsQuery): Promise<Response<any>>;
250
256
  /**
251
257
  * Replace scope attributes
252
258
  * Replaces all attributes of the scope node with the body.
@@ -260,6 +266,6 @@ export declare class AuthzAdminController extends BaseController {
260
266
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
261
267
  * @response 500 {AuthzAdminError} hook_error: an action hook threw or timed out
262
268
  */
263
- replaceAttributes(req: Request): Promise<Response<any>>;
269
+ replaceAttributes(domain: string, actor: Principal, type: string, id: string, body: AuthzAttributesBody, options: AuthzWriteOptionsQuery): Promise<Response<any>>;
264
270
  }
265
271
  //# sourceMappingURL=AuthzAdminController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthzAdminController.d.ts","sourceRoot":"","sources":["../../../src/controllers/AuthzAdminController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,KAAK,EAAE,UAAU,EAAqB,eAAe,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAC;AAC3H,OAAO,EAAsB,cAAc,EAA6G,MAAM,eAAe,CAAC;AAC9K,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIvD,OAAO,wBAAwB,CAAC;AAuEhC;;;;;;;;;GASG;AACH,qBAEa,oBAAqB,SAAQ,cAAc;IAEtD,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAG9B,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;IAEhC;;;OAGG;IACH,UAAgB,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CActG;IAED,4EAA4E;IAC5E,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,EAAE,0BAKzD;IAED,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,0BAExD;IAED;;;;;;;;;;;;OAYG;IAEU,QAAQ,CAAQ,GAAG,EAAE,OAAO,0BAQxC;IAED;;;;;;;;OAQG;IAEU,eAAe,CAAQ,GAAG,EAAE,OAAO,0BAE/C;IAED;;;;;;;;OAQG;IAEU,WAAW,CAAQ,GAAG,EAAE,OAAO,0BAE3C;IAED;;;;;;;;;;;;OAYG;IAEU,KAAK,CAAQ,GAAG,EAAE,OAAO,0BAErC;IAED;;;;;;;;;;;;OAYG;IAEU,eAAe,CAAQ,GAAG,EAAE,OAAO,0BAY/C;IAED;;;;;;;;;;;OAWG;IAEU,MAAM,CAAQ,GAAG,EAAE,OAAO,0BAEtC;IAED;;;;;;;;OAQG;IAEU,SAAS,CAAQ,GAAG,EAAE,OAAO,0BAEzC;IAED;;;;;;;;;;;;OAYG;IAEU,UAAU,CAAQ,GAAG,EAAE,OAAO,0BAG1C;IAED;;;;;;;;;;;;OAYG;IAEU,SAAS,CAAQ,GAAG,EAAE,OAAO,0BAEzC;IAED;;;;;;;;;;;OAWG;IAEU,UAAU,CAAQ,GAAG,EAAE,OAAO,0BAE1C;IAED;;;;;;;;OAQG;IAEU,SAAS,CAAQ,GAAG,EAAE,OAAO,0BAEzC;IAED;;;;;;;;;;;;OAYG;IAEU,OAAO,CAAQ,GAAG,EAAE,OAAO,0BAEvC;IAED;;;;;;;;;;;OAWG;IAEU,UAAU,CAAQ,GAAG,EAAE,OAAO,0BAE1C;IAED;;;;;;;;OAQG;IAEU,YAAY,CAAQ,GAAG,EAAE,OAAO,0BAE5C;IAED;;;;;;;;;;;;OAYG;IAEU,SAAS,CAAQ,GAAG,EAAE,OAAO,0BAEzC;IAED;;;;;;;;;;;OAWG;IAEU,YAAY,CAAQ,GAAG,EAAE,OAAO,0BAE5C;IAED;;;;;;;OAOG;IAEU,UAAU,CAAQ,GAAG,EAAE,OAAO,0BAE1C;IAED;;;;;;;;;;;;OAYG;IAEU,eAAe,CAAQ,GAAG,EAAE,OAAO,0BAE/C;IAED;;;;;;;;;;;;OAYG;IAEU,iBAAiB,CAAQ,GAAG,EAAE,OAAO,0BAEjD;CACF"}
1
+ {"version":3,"file":"AuthzAdminController.d.ts","sourceRoot":"","sources":["../../../src/controllers/AuthzAdminController.ts"],"names":[],"mappings":"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"}