@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
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/routes/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/routes/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { JsonSchema } from './primitives.js';
2
+ export declare const AuthzAdminError: JsonSchema;
3
+ export declare const AuthzCommandResult: JsonSchema;
4
+ export declare const AuthzAdminResults: JsonSchema;
5
+ export declare const AuthzAdminPage: JsonSchema;
6
+ export declare const AuthzAdminAttributes: JsonSchema;
7
+ //# sourceMappingURL=answers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answers.d.ts","sourceRoot":"","sources":["../../../src/schemas/answers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,eAAO,MAAM,eAAe,EAAE,UAA+Z,CAAC;AAM9b,eAAO,MAAM,kBAAkB,EAAE,UAA4E,CAAC;AAE9G,eAAO,MAAM,iBAAiB,EAAE,UAAyR,CAAC;AAE1T,eAAO,MAAM,cAAc,EAAE,UAA+T,CAAC;AAE7V,eAAO,MAAM,oBAAoB,EAAE,UAAuE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { anyObject, obj, text } from './primitives.js';
2
+ const errorShape = obj(['code', 'message'], { code: text, message: text, field: { ...text, description: 'the offending field, when one is known' } });
3
+ export const AuthzAdminError = obj(['error'], { error: errorShape }, 'The body of a refused request. Codes: invalid_request, invalid_query, invalid_batch, invalid_command, unknown_role, not_assignable, wrong_scope_type, unknown_ladder, unknown_permission, rule_not_compilable, invalid_attributes, set_cycle, set_too_deep (400); forbidden, escalation, last_holder, self_lockout, protected_role (403); not_found (404); conflict (409)');
4
+ const commandResult = {
5
+ oneOf: [obj(['ok', 'kind', 'affected'], { ok: { type: 'boolean', enum: [true] }, kind: text, id: text, token: { ...text, description: 'link.create only, shown once' }, affected: { type: 'integer' } }), obj(['ok', 'kind', 'error'], { ok: { type: 'boolean', enum: [false] }, kind: text, error: errorShape })],
6
+ };
7
+ export const AuthzCommandResult = { ...commandResult, description: 'The outcome of one command' };
8
+ export const AuthzAdminResults = obj(['results'], { results: { type: 'array', items: commandResult, description: 'one per command, in order; the first failure ends the list' } }, 'The answer of a write route: 200 when every command succeeded, else the status of the first failure, with the same body');
9
+ export const AuthzAdminPage = obj(['items', 'total'], { items: { type: 'array', items: anyObject }, total: { type: 'integer', description: 'rows matching before paging' }, next: { type: 'string', description: 'pass it as `after` to read the following page; absent on the last page and on offset pages' } }, 'The answer of a list route');
10
+ export const AuthzAdminAttributes = { ...anyObject, description: 'The attributes of a scope' };
11
+ //# sourceMappingURL=answers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answers.js","sourceRoot":"","sources":["../../../src/schemas/answers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAGvD,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,wCAAwC,EAAE,EAAE,CAAC,CAAC;AAEtJ,MAAM,CAAC,MAAM,eAAe,GAAe,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,2WAA2W,CAAC,CAAC;AAE9b,MAAM,aAAa,GAAe;IAChC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,8BAA8B,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;CACnT,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAe,EAAE,GAAG,aAAa,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;AAE9G,MAAM,CAAC,MAAM,iBAAiB,GAAe,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,4DAA4D,EAAE,EAAE,EAAE,yHAAyH,CAAC,CAAC;AAE1T,MAAM,CAAC,MAAM,cAAc,GAAe,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4FAA4F,EAAE,EAAE,EAAE,4BAA4B,CAAC,CAAC;AAE7V,MAAM,CAAC,MAAM,oBAAoB,GAAe,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC"}
@@ -8,6 +8,10 @@ export declare const policyBody: JsonSchema;
8
8
  export declare const COMMAND_KINDS: readonly ['assignment.grant', 'assignment.revoke', 'assignment.revokeWhere', 'assignment.setTags', 'assignment.addTags', 'assignment.removeTags', 'assignment.setExpiry', 'set.addMember', 'set.removeMember', 'link.create', 'link.update', 'link.revoke', 'rule.put', 'rule.delete', 'policy.put', 'policy.delete', 'scope.setAttributes', 'scope.replaceAttributes', 'scope.forget'];
9
9
  /** The schemas of the built-in sources, in COMMAND_KINDS order. */
10
10
  export declare const commandSchemas: readonly JsonSchema[];
11
+ /** The batch body over the built-in command schemas; AuthzAdminSchemaProvider serves it over every registered source. */
12
+ export declare const AuthzAdminBatch: JsonSchema;
13
+ /** The properties of a built-in command without `kind`: the body of the route that runs that one command. */
14
+ export declare function commandFields(kind: (typeof COMMAND_KINDS)[number]): Record<string, JsonSchema>;
11
15
  /** The commands of @spinajs/authz-rbac. */
12
16
  export declare class RbacCommandSchemas extends AuthzCommandSchemaSource {
13
17
  schemas(): Readonly<Record<string, JsonSchema>>;
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/schemas/commands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAIzD,4FAA4F;AAC5F,eAAO,MAAM,QAAQ,EAAE,UAsBtB,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,UAAU,EAAE,UAiBxB,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,aAAa,YAAI,kBAAkB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,cAAc,CAAU,CAAC;AA8BrZ,mEAAmE;AACnE,eAAO,MAAM,cAAc,EAAE,SAAS,UAAU,EAAwD,CAAC;AAIzG,2CAA2C;AAC3C,qBACa,kBAAmB,SAAQ,wBAAwB;IAC9D,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAE9C;CACF;AAED,2CAA2C;AAC3C,qBACa,kBAAmB,SAAQ,wBAAwB;IAC9D,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAE9C;CACF;AAED,iCAAiC;AACjC,qBACa,kBAAmB,SAAQ,wBAAwB;IAC9D,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAE9C;CACF"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/schemas/commands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAIzD,4FAA4F;AAC5F,eAAO,MAAM,QAAQ,EAAE,UAsBtB,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,UAAU,EAAE,UAiBxB,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,aAAa,YAAI,kBAAkB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,cAAc,CAAU,CAAC;AA8BrZ,mEAAmE;AACnE,eAAO,MAAM,cAAc,EAAE,SAAS,UAAU,EAAwD,CAAC;AAIzG,yHAAyH;AACzH,eAAO,MAAM,eAAe,EAAE,UAAyC,CAAC;AAExE,6GAA6G;AAC7G,wBAAgB,aAAa,CAAC,IAAI,EAAE,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAG9F;AAED,2CAA2C;AAC3C,qBACa,kBAAmB,SAAQ,wBAAwB;IAC9D,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAE9C;CACF;AAED,2CAA2C;AAC3C,qBACa,kBAAmB,SAAQ,wBAAwB;IAC9D,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAE9C;CACF;AAED,iCAAiC;AACjC,qBACa,kBAAmB,SAAQ,wBAAwB;IAC9D,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAE9C;CACF"}
@@ -5,12 +5,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { Injectable } from '@spinajs/di';
8
- import { anyObject, assignmentSubject, command, nullableDateTime, obj, principalRef, resourceRef, roleSet, tags, text } from './primitives.js';
8
+ import { anyObject, assignmentSubject, closed, command, commandBatch, nullableDateTime, principalRef, resourceRef, roleName, roleSet, rowId, tags, text } from './primitives.js';
9
9
  import { AuthzCommandSchemaSource } from './registry.js';
10
- const idOnly = { id: { ...text, description: 'the id of the row' } };
10
+ const idOnly = { id: { ...rowId, description: 'the id of the row' } };
11
11
  /** A rule as `rule.put` takes it; the condition language is described by @spinajs/authz. */
12
- export const ruleBody = obj(['id', 'kind', 'scope'], {
13
- id: text,
12
+ export const ruleBody = closed(['id', 'kind', 'scope'], {
13
+ id: rowId,
14
14
  kind: { type: 'string', enum: ['restrict', 'cap', 'threshold'] },
15
15
  scope: resourceRef,
16
16
  resourceTypes: { type: 'array', items: text },
@@ -18,8 +18,8 @@ export const ruleBody = obj(['id', 'kind', 'scope'], {
18
18
  when: { ...anyObject, description: 'a Condition' },
19
19
  expiresAt: nullableDateTime,
20
20
  allow: { type: 'array', items: assignmentSubject },
21
- ladder: text,
22
- maxRole: { description: 'a role id, { ref } or null (drops the assignment)', nullable: true, oneOf: [text, anyObject] },
21
+ ladder: roleName,
22
+ maxRole: { description: 'a role id, { ref } or null (drops the assignment)', oneOf: [text, { ...anyObject, nullable: true }] },
23
23
  stripTags: { type: 'boolean' },
24
24
  assignments: anyObject,
25
25
  permissions: { type: 'array', items: text },
@@ -29,8 +29,8 @@ export const ruleBody = obj(['id', 'kind', 'scope'], {
29
29
  reason: { ...anyObject, description: 'DenyReason: code, payload, priority, sortKey' },
30
30
  }, 'A RBAC rule in SQL form; the server sets `source`');
31
31
  /** A policy as `policy.put` takes it. */
32
- export const policyBody = obj(['id', 'effect', 'permissions'], {
33
- id: text,
32
+ export const policyBody = closed(['id', 'effect', 'permissions'], {
33
+ id: rowId,
34
34
  effect: { type: 'string', enum: ['permit', 'deny'] },
35
35
  permissions: { type: 'array', items: text, description: 'permission globs' },
36
36
  resourceTypes: { type: 'array', items: text },
@@ -46,17 +46,17 @@ export const policyBody = obj(['id', 'effect', 'permissions'], {
46
46
  /** The command kinds the built-in sources describe: authz-rbac's, authz-abac's and the core's. */
47
47
  export const COMMAND_KINDS = ['assignment.grant', 'assignment.revoke', 'assignment.revokeWhere', 'assignment.setTags', 'assignment.addTags', 'assignment.removeTags', 'assignment.setExpiry', 'set.addMember', 'set.removeMember', 'link.create', 'link.update', 'link.revoke', 'rule.put', 'rule.delete', 'policy.put', 'policy.delete', 'scope.setAttributes', 'scope.replaceAttributes', 'scope.forget'];
48
48
  const rbacCommands = [
49
- command('assignment.grant', ['subject', 'role', 'scope'], { subject: assignmentSubject, role: text, scope: resourceRef, tags, expiresAt: nullableDateTime, replaceLadder: { type: 'boolean', description: "revoke the subject's other roles of the same ladder at this scope" } }, 'Grants a role to a subject at a scope'),
49
+ command('assignment.grant', ['subject', 'role', 'scope'], { subject: assignmentSubject, role: roleName, scope: resourceRef, tags, expiresAt: nullableDateTime, replaceLadder: { type: 'boolean', description: "revoke the subject's other roles of the same ladder at this scope" } }, 'Grants a role to a subject at a scope'),
50
50
  command('assignment.revoke', ['id'], idOnly, 'Revokes one assignment'),
51
- command('assignment.revokeWhere', ['scope'], { scope: resourceRef, subject: assignmentSubject, role: text }, 'Revokes the assignments at a scope, narrowed by subject and role'),
51
+ command('assignment.revokeWhere', ['scope'], { scope: resourceRef, subject: assignmentSubject, role: roleName }, 'Revokes the assignments at a scope, narrowed by subject and role'),
52
52
  command('assignment.setTags', ['id', 'tags'], { ...idOnly, tags }, 'Replaces the tags of an assignment'),
53
53
  command('assignment.addTags', ['id', 'tags'], { ...idOnly, tags }, 'Adds tags to an assignment'),
54
54
  command('assignment.removeTags', ['id', 'tags'], { ...idOnly, tags }, 'Removes tags from an assignment'),
55
55
  command('assignment.setExpiry', ['id', 'expiresAt'], { ...idOnly, expiresAt: nullableDateTime }, 'Sets or clears the expiry of an assignment'),
56
56
  command('set.addMember', ['set', 'member'], { set: roleSet, member: principalRef, expiresAt: nullableDateTime }, 'Adds a principal to a subject set (group.member at group:G)'),
57
57
  command('set.removeMember', ['set', 'member'], { set: roleSet, member: principalRef }, 'Removes a principal from a subject set'),
58
- command('link.create', ['scope', 'role'], { scope: resourceRef, role: text, tags, expiresAt: nullableDateTime, attributes: anyObject }, 'Creates a share link; the answer carries its token, shown once'),
59
- command('link.update', ['id'], { ...idOnly, expiresAt: nullableDateTime, attributes: anyObject, role: text, tags }, 'Changes a share link'),
58
+ command('link.create', ['scope', 'role'], { scope: resourceRef, role: roleName, tags, expiresAt: nullableDateTime, attributes: anyObject }, 'Creates a share link; the answer carries its token, shown once'),
59
+ command('link.update', ['id'], { ...idOnly, expiresAt: nullableDateTime, attributes: anyObject, role: roleName, tags }, 'Changes a share link'),
60
60
  command('link.revoke', ['id'], idOnly, 'Revokes a share link'),
61
61
  command('rule.put', ['rule'], { rule: ruleBody }, 'Inserts or replaces a RBAC rule by id'),
62
62
  command('rule.delete', ['id'], idOnly, 'Deletes a RBAC rule'),
@@ -73,6 +73,13 @@ const coreCommands = [
73
73
  /** The schemas of the built-in sources, in COMMAND_KINDS order. */
74
74
  export const commandSchemas = [...rbacCommands, ...abacCommands, ...coreCommands];
75
75
  const byKind = (schemas) => Object.fromEntries(schemas.map((s) => [s.properties.kind.enum[0], s]));
76
+ /** The batch body over the built-in command schemas; AuthzAdminSchemaProvider serves it over every registered source. */
77
+ export const AuthzAdminBatch = commandBatch(commandSchemas);
78
+ /** The properties of a built-in command without `kind`: the body of the route that runs that one command. */
79
+ export function commandFields(kind) {
80
+ const { kind: _kind, ...fields } = byKind(commandSchemas)[kind].properties;
81
+ return fields;
82
+ }
76
83
  /** The commands of @spinajs/authz-rbac. */
77
84
  let RbacCommandSchemas = class RbacCommandSchemas extends AuthzCommandSchemaSource {
78
85
  schemas() {
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/schemas/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/schemas/commands.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,13 @@
1
1
  import type { JsonSchema } from './primitives.js';
2
- interface RouteDoc {
3
- readonly method: 'get' | 'post' | 'put' | 'patch' | 'delete';
4
- readonly path: string;
5
- readonly body?: string;
6
- readonly query?: readonly string[];
7
- readonly requiredQuery?: readonly string[];
8
- }
9
- /** What each route takes that the controller's signature cannot say: its body and its query string. */
10
- export declare const AUTHZ_ADMIN_ROUTES: readonly RouteDoc[];
11
2
  /**
12
- * http-swagger describes a route's body and query string from decorated arguments, and the admin
13
- * routes read both from `@Req()` so that no http-layer step can refuse what AuthzAdmin would answer.
14
- * This adds what the builder cannot see to an OpenAPI document it built: the request bodies, the
15
- * query parameters, the path parameter text and the body schemas as components. Operations are
16
- * matched by method and path suffix, so a route prefix does not matter. `basePath` is the configured
17
- * `authz.http.admin.basePath` when the app moved the routes. Changes the document in place.
18
- * Pass `AuthzAdminSchemaProvider.schemas()` as `schemas` to list the commands every registered model contributes.
3
+ * http-swagger documents the `@Body()` DTOs and the `@Param()` schemas of the admin routes itself.
4
+ * This adds what it cannot see, read from the same DTOs and registry the routes validate against:
5
+ * the body of POST /authz/commands (`$ref` AuthzAdminBatch, built from the registered
6
+ * AuthzCommandSchemaSources), the attribute bodies (`@AdminBody()`), the query parameters of each
7
+ * query DTO (`@AdminQuery()`) and the path parameter text. Operations are matched by method and path
8
+ * suffix, so a route prefix does not matter; `basePath` is the configured `authz.http.admin.basePath`
9
+ * when the app moved the routes. Changes the document in place. Pass `AuthzAdminSchemaProvider.schemas()`
10
+ * as `schemas` to list the commands every registered model contributes.
19
11
  */
20
12
  export declare function describeAuthzAdminDocument<T extends object>(doc: T, basePath?: string, schemas?: Readonly<Record<string, JsonSchema>>): T;
21
- export {};
22
13
  //# sourceMappingURL=document.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/schemas/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAKlD,UAAU,QAAQ;IAChB,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAwBD,uGAAuG;AACvG,eAAO,MAAM,kBAAkB,EAAE,SAAS,QAAQ,EAoBjD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,SAAU,EAAE,OAAO,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAuB,GAAG,CAAC,CAoB/J"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/schemas/document.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAuDlD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,SAAU,EAAE,OAAO,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAmB,GAAG,CAAC,CAkB3J"}
@@ -1,75 +1,65 @@
1
+ import { CONTROLLED_DESCRIPTOR_SYMBOL } from '@spinajs/http';
2
+ import { SCHEMA_SYMBOL } from '@spinajs/validation';
3
+ import { AuthzAdminController } from '../controllers/AuthzAdminController.js';
4
+ import { AuthzAdminBatch } from './commands.js';
1
5
  import { AUTHZ_ADMIN_SCHEMAS } from './provider.js';
2
- const WRITE_OPTIONS = ['reason', 'idempotencyKey', 'dryRun'];
3
- const QUERY = {
4
- scope: { schema: { type: 'string' }, description: '`<type>` or `<type>:<id>`, split at the first `:`; `$global` is the global scope' },
5
- subject: { schema: { type: 'string' }, description: '`<type>:<id>` (a principal) or `set:<role>@<type>:<id>` (a subject set)' },
6
- role: { schema: { type: 'string' }, description: 'only assignments of this role' },
7
- permission: { schema: { type: 'string' }, description: 'the permission whose holders are listed (required)' },
8
- expandSets: { schema: { type: 'boolean' }, description: '`true` also lists the members of each subject set, next to the set itself' },
9
- includeExpired: { schema: { type: 'boolean' }, description: '`true` or `false`' },
10
- limit: { schema: { type: 'integer', minimum: 0 }, description: 'page size; the server sets the default' },
11
- offset: { schema: { type: 'integer', minimum: 0 }, description: 'rows to skip' },
12
- after: { schema: { type: 'string' }, description: 'the `next` of the previous page: continues behind its last row; give it instead of `offset`' },
13
- reason: { schema: { type: 'string' }, description: 'goes to the audit trail' },
14
- idempotencyKey: { schema: { type: 'string' }, description: 'a retried request with the same key returns the first result' },
15
- dryRun: { schema: { type: 'boolean' }, description: '`true` validates and guards, then rolls back' },
16
- };
17
- const PATH_PARAMS = {
18
- id: 'the id of the row (assignment, link, rule, policy) or of the scope node',
19
- type: 'the resource type of the scope node',
20
- };
21
- /** What each route takes that the controller's signature cannot say: its body and its query string. */
22
- export const AUTHZ_ADMIN_ROUTES = [
23
- { method: 'post', path: '/authz/commands', body: 'AuthzAdminBatch' },
24
- { method: 'get', path: '/authz/assignments', query: ['scope', 'subject', 'role', 'includeExpired', 'limit', 'offset', 'after'] },
25
- { method: 'get', path: '/authz/holders', query: ['scope', 'permission', 'expandSets', 'limit', 'offset', 'after'], requiredQuery: ['scope', 'permission'] },
26
- { method: 'post', path: '/authz/assignments', body: 'AuthzAssignmentGrant', query: WRITE_OPTIONS },
27
- { method: 'patch', path: '/authz/assignments/{id}', body: 'AuthzAssignmentPatch', query: WRITE_OPTIONS },
28
- { method: 'delete', path: '/authz/assignments/{id}', query: WRITE_OPTIONS },
29
- { method: 'get', path: '/authz/links', query: ['scope', 'limit', 'offset', 'after'] },
30
- { method: 'post', path: '/authz/links', body: 'AuthzLinkCreate', query: WRITE_OPTIONS },
31
- { method: 'patch', path: '/authz/links/{id}', body: 'AuthzLinkPatch', query: WRITE_OPTIONS },
32
- { method: 'delete', path: '/authz/links/{id}', query: WRITE_OPTIONS },
33
- { method: 'get', path: '/authz/rules', query: ['scope', 'limit', 'offset', 'after'] },
34
- { method: 'put', path: '/authz/rules/{id}', body: 'AuthzRuleBody', query: WRITE_OPTIONS },
35
- { method: 'delete', path: '/authz/rules/{id}', query: WRITE_OPTIONS },
36
- { method: 'get', path: '/authz/policies', query: ['scope', 'limit', 'offset'] },
37
- { method: 'put', path: '/authz/policies/{id}', body: 'AuthzPolicyBody', query: WRITE_OPTIONS },
38
- { method: 'delete', path: '/authz/policies/{id}', query: WRITE_OPTIONS },
39
- { method: 'get', path: '/authz/scopes/{type}/{id}/attributes' },
40
- { method: 'patch', path: '/authz/scopes/{type}/{id}/attributes', body: 'AuthzAttributesPatch', query: WRITE_OPTIONS },
41
- { method: 'put', path: '/authz/scopes/{type}/{id}/attributes', body: 'AuthzAttributesBody', query: WRITE_OPTIONS },
42
- ];
6
+ /** The answers and the batch body over the built-in command kinds. */
7
+ const DEFAULT_SCHEMAS = { ...AUTHZ_ADMIN_SCHEMAS, AuthzAdminBatch };
8
+ function schemaOf(param) {
9
+ const type = param.RuntimeType;
10
+ return type?.prototype ? Reflect.getMetadata(SCHEMA_SYMBOL, type.prototype) : undefined;
11
+ }
12
+ const jsonBody = (schema) => ({ required: true, content: { 'application/json': { schema } } });
13
+ /** The request body or the query parameters a custom route arg of the controller takes, which http-swagger does not know. */
14
+ function describeArg(operation, param) {
15
+ const schema = schemaOf(param);
16
+ if (param.Type === 'AuthzAdminBatchArg') {
17
+ operation.requestBody = jsonBody({ $ref: '#/components/schemas/AuthzAdminBatch' });
18
+ }
19
+ else if (param.Type === 'AuthzAdminBodyArg' && schema) {
20
+ const { $id: _id, ...documented } = schema;
21
+ operation.requestBody = jsonBody(documented);
22
+ }
23
+ else if (param.Type === 'AuthzAdminQueryArg' && schema) {
24
+ const parameters = (operation.parameters ??= []);
25
+ const required = schema.required ?? [];
26
+ for (const [name, property] of Object.entries(schema.properties ?? {})) {
27
+ if (parameters.some((p) => p.in === 'query' && p.name === name))
28
+ continue;
29
+ const { description, ...value } = property;
30
+ parameters.push({ name, in: 'query', required: required.includes(name), schema: value, ...(typeof description === 'string' ? { description } : {}) });
31
+ }
32
+ }
33
+ }
43
34
  /**
44
- * http-swagger describes a route's body and query string from decorated arguments, and the admin
45
- * routes read both from `@Req()` so that no http-layer step can refuse what AuthzAdmin would answer.
46
- * This adds what the builder cannot see to an OpenAPI document it built: the request bodies, the
47
- * query parameters, the path parameter text and the body schemas as components. Operations are
48
- * matched by method and path suffix, so a route prefix does not matter. `basePath` is the configured
49
- * `authz.http.admin.basePath` when the app moved the routes. Changes the document in place.
50
- * Pass `AuthzAdminSchemaProvider.schemas()` as `schemas` to list the commands every registered model contributes.
35
+ * http-swagger documents the `@Body()` DTOs and the `@Param()` schemas of the admin routes itself.
36
+ * This adds what it cannot see, read from the same DTOs and registry the routes validate against:
37
+ * the body of POST /authz/commands (`$ref` AuthzAdminBatch, built from the registered
38
+ * AuthzCommandSchemaSources), the attribute bodies (`@AdminBody()`), the query parameters of each
39
+ * query DTO (`@AdminQuery()`) and the path parameter text. Operations are matched by method and path
40
+ * suffix, so a route prefix does not matter; `basePath` is the configured `authz.http.admin.basePath`
41
+ * when the app moved the routes. Changes the document in place. Pass `AuthzAdminSchemaProvider.schemas()`
42
+ * as `schemas` to list the commands every registered model contributes.
51
43
  */
52
- export function describeAuthzAdminDocument(doc, basePath = 'authz', schemas = AUTHZ_ADMIN_SCHEMAS) {
44
+ export function describeAuthzAdminDocument(doc, basePath = 'authz', schemas = DEFAULT_SCHEMAS) {
53
45
  const document = doc;
54
46
  const components = ((document.components ??= {}).schemas ??= {});
55
47
  for (const [name, schema] of Object.entries(schemas))
56
48
  components[name] ??= schema;
57
- for (const route of AUTHZ_ADMIN_ROUTES) {
58
- const routePath = route.path.replace(/^\/authz/, `/${basePath.replace(/^\/+|\/+$/g, '')}`);
59
- const path = Object.keys(document.paths ?? {}).find((p) => p === routePath || p.endsWith(routePath));
60
- const operation = path ? document.paths[path][route.method] : undefined;
49
+ const base = basePath.replace(/^\/+|\/+$/g, '');
50
+ const paths = document.paths ?? {};
51
+ const descriptor = Reflect.getMetadata(CONTROLLED_DESCRIPTOR_SYMBOL, AuthzAdminController.prototype);
52
+ for (const route of descriptor.Routes.values()) {
53
+ const routePath = `/${base}/${(route.Path ?? '').replace(/:(\w+)/g, '{$1}')}`;
54
+ const path = Object.keys(paths).find((p) => p === routePath || p.endsWith(routePath));
55
+ const operation = path ? paths[path][route.Type] : undefined;
61
56
  if (!operation)
62
57
  continue;
63
- if (route.body)
64
- operation.requestBody = { required: true, content: { 'application/json': { schema: { $ref: `#/components/schemas/${route.body}` } } } };
65
- const parameters = (operation.parameters ??= []);
66
- for (const p of parameters)
67
- if (p.in === 'path' && !p.description)
68
- p.description = PATH_PARAMS[p.name];
69
- for (const name of route.query ?? []) {
70
- if (!parameters.some((p) => p.in === 'query' && p.name === name))
71
- parameters.push({ name, in: 'query', required: route.requiredQuery?.includes(name) === true, ...QUERY[name] });
72
- }
58
+ for (const param of route.Parameters.values())
59
+ describeArg(operation, param);
60
+ for (const p of operation.parameters ?? [])
61
+ if (p.in === 'path' && !p.description && typeof p.schema?.description === 'string')
62
+ p.description = p.schema.description;
73
63
  }
74
64
  return doc;
75
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/schemas/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/schemas/document.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export type { JsonSchema } from './primitives.js';
2
+ export * from './answers.js';
2
3
  export * from './commands.js';
3
- export * from './bodies.js';
4
4
  export * from './provider.js';
5
5
  export * from './document.js';
6
6
  export * from './registry.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -1,5 +1,5 @@
1
+ export * from './answers.js';
1
2
  export * from './commands.js';
2
- export * from './bodies.js';
3
3
  export * from './provider.js';
4
4
  export * from './document.js';
5
5
  export * from './registry.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -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,33 +1,41 @@
1
+ import { idField, idempotencyKeyField, nameField, principalRefField, reasonField, typeField } from '@spinajs/authz';
1
2
  export const text = { type: 'string' };
2
3
  export const 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' };
3
4
  export const tags = { type: 'array', items: text };
4
5
  export const anyObject = { type: 'object', additionalProperties: true };
6
+ export const rowId = { ...idField };
7
+ export const roleName = { ...nameField };
5
8
  export const resourceRef = {
6
9
  type: 'object',
10
+ additionalProperties: false,
7
11
  required: ['type'],
8
- properties: { type: text, id: { ...text, description: 'absent for a type-level scope' } },
12
+ properties: { type: { ...typeField }, id: { ...idField, description: 'absent for a type-level scope' } },
9
13
  };
10
- export const principalRef = {
11
- type: 'object',
12
- required: ['type', 'id'],
13
- properties: { type: text, id: text },
14
- };
15
- export const roleSet = { type: 'object', required: ['role', 'scope'], properties: { role: text, scope: resourceRef } };
16
- export const subjectSet = { type: 'object', required: ['set'], properties: { set: roleSet } };
17
- export const assignmentSubject = { description: 'A principal, or the holders of a role at a scope', oneOf: [principalRef, subjectSet] };
14
+ export const principalRef = { ...principalRefField, properties: { ...principalRefField.properties } };
18
15
  export function obj(required, properties, description) {
19
16
  return { type: 'object', ...(description ? { description } : {}), ...(required.length ? { required } : {}), properties };
20
17
  }
21
- const writeOptions = {
22
- reason: { ...text, description: 'goes to the audit trail' },
23
- idempotencyKey: { ...text, description: 'a retried batch with the same key returns the first result' },
18
+ /** An object that refuses keys it does not list. */
19
+ export function closed(required, properties, description) {
20
+ return { ...obj(required, properties, description), additionalProperties: false };
21
+ }
22
+ export const roleSet = closed(['role', 'scope'], { role: roleName, scope: resourceRef });
23
+ export const subjectSet = closed(['set'], { set: roleSet });
24
+ export const assignmentSubject = { description: 'A principal, or the holders of a role at a scope', oneOf: [principalRef, subjectSet] };
25
+ export const writeOptions = {
26
+ reason: { ...reasonField, description: 'goes to the audit trail' },
27
+ idempotencyKey: { ...idempotencyKeyField, description: 'a retried request with the same key returns the first result' },
24
28
  dryRun: { type: 'boolean', description: 'validate and guard, then roll back' },
25
29
  };
30
+ /** The body of POST /authz/commands with `items` as the schema of one command. */
31
+ export function batchOf(items) {
32
+ return closed(['commands'], { commands: { type: 'array', items }, ...writeOptions }, 'POST /authz/commands: the commands run in one transaction, in order; the first failure rolls the batch back');
33
+ }
26
34
  /** The body of POST /authz/commands over the given command schemas. */
27
35
  export function commandBatch(commands) {
28
- 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');
36
+ return batchOf({ oneOf: commands });
29
37
  }
30
38
  export function command(kind, required, properties, description) {
31
- return obj(['kind', ...required], { kind: { type: 'string', enum: [kind] }, ...properties }, description);
39
+ return closed(['kind', ...required], { kind: { type: 'string', enum: [kind] }, ...properties }, description);
32
40
  }
33
41
  //# sourceMappingURL=primitives.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../../src/schemas/primitives.ts"],"names":[],"mappings":"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"}
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"}