@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
@@ -10,14 +10,6 @@ const authz_1 = require("@spinajs/authz");
10
10
  function invalid(field, message) {
11
11
  throw new authz_1.AuthzAdminFailure('invalid_query', message, field);
12
12
  }
13
- function text(q, field) {
14
- const v = q[field];
15
- if (v === undefined)
16
- return undefined;
17
- if (typeof v !== 'string')
18
- invalid(field, `${field} must be given once, as text`);
19
- return v;
20
- }
21
13
  /** `<type>` or `<type>:<id>`, split at the first `:` (ids may hold more); `$global` is GLOBAL. */
22
14
  function parseResourceRef(value, field) {
23
15
  if (value === authz_1.GLOBAL.type)
@@ -51,90 +43,51 @@ function parseAssignmentSubject(value, field = 'subject') {
51
43
  return bad();
52
44
  return { type: value.slice(0, at), id: value.slice(at + 1) };
53
45
  }
54
- function flag(q, field) {
55
- const v = text(q, field);
56
- if (v === undefined)
57
- return undefined;
58
- if (v !== 'true' && v !== 'false')
59
- invalid(field, `${field} must be true or false`);
60
- return v === 'true';
61
- }
62
- function count(q, field) {
63
- const v = text(q, field);
64
- if (v === undefined)
65
- return undefined;
66
- if (!/^\d+$/.test(v))
67
- invalid(field, `${field} must be a non-negative integer`);
68
- return Number(v);
69
- }
70
- /** `after`, the `next` of the previous page; it replaces `offset`. */
71
- function cursor(q, offset) {
72
- const after = text(q, 'after');
73
- if (after === '')
74
- invalid('after', 'after must not be empty');
46
+ /** `limit`, `offset` and `after` as AuthzAdmin's page, only the ones given; AuthzAdmin defaults the rest. `after` replaces `offset`. */
47
+ function page(q) {
48
+ const { limit, offset, after } = q;
75
49
  if (after !== undefined && offset !== undefined)
76
50
  invalid('after', 'after replaces offset: give one of them');
77
- return after;
78
- }
79
- /** `limit`, `offset` and `after` as AuthzAdmin's page, only the ones given; AuthzAdmin defaults the rest. */
80
- function page(q) {
81
- const limit = count(q, 'limit');
82
- const offset = count(q, 'offset');
83
- const after = cursor(q, offset);
84
51
  if (limit === undefined && offset === undefined && after === undefined)
85
52
  return {};
86
53
  return { page: { ...(limit === undefined ? {} : { limit }), ...(offset === undefined ? {} : { offset }), ...(after === undefined ? {} : { after }) } };
87
54
  }
88
55
  function scope(q) {
89
- const v = text(q, 'scope');
90
- return v === undefined ? {} : { scope: parseResourceRef(v, 'scope') };
56
+ return q.scope === undefined ? {} : { scope: parseResourceRef(q.scope, 'scope') };
91
57
  }
92
58
  /** GET /authz/assignments: `scope`, `subject`, `role`, `includeExpired`, `limit`, `offset` or `after`. */
93
59
  function readAssignmentsQuery(q) {
94
- const subject = text(q, 'subject');
95
- const role = text(q, 'role');
96
- const includeExpired = flag(q, 'includeExpired');
97
60
  return {
98
61
  kind: 'assignments',
99
62
  ...scope(q),
100
- ...(subject === undefined ? {} : { subject: parseAssignmentSubject(subject) }),
101
- ...(role === undefined ? {} : { role }),
102
- ...(includeExpired === undefined ? {} : { includeExpired }),
63
+ ...(q.subject === undefined ? {} : { subject: parseAssignmentSubject(q.subject) }),
64
+ ...(q.role === undefined ? {} : { role: q.role }),
65
+ ...(q.includeExpired === undefined ? {} : { includeExpired: q.includeExpired }),
103
66
  ...page(q),
104
67
  };
105
68
  }
106
69
  /** GET /authz/holders: `scope` and `permission` (both required), `expandSets`, `limit`, `offset` or `after`. */
107
70
  function readHoldersQuery(q) {
108
- const scope = text(q, 'scope');
109
- const permission = text(q, 'permission');
110
- if (scope === undefined)
71
+ if (q.scope === undefined)
111
72
  invalid('scope', 'scope is required');
112
- if (permission === undefined || permission === '')
113
- invalid('permission', 'permission is required');
114
- const expandSets = flag(q, 'expandSets');
115
73
  return {
116
74
  kind: 'holders',
117
- scope: parseResourceRef(scope, 'scope'),
118
- permission,
119
- ...(expandSets === undefined ? {} : { expandSets }),
75
+ scope: parseResourceRef(q.scope, 'scope'),
76
+ permission: q.permission,
77
+ ...(q.expandSets === undefined ? {} : { expandSets: q.expandSets }),
120
78
  ...page(q),
121
79
  };
122
80
  }
123
- /** GET /authz/links and /authz/rules: `scope`, `limit`, `offset` or `after`; GET /authz/policies has no `after`. */
81
+ /** GET /authz/links, /authz/rules and /authz/policies: `scope`, `limit`, `offset` or `after` (policies have no `after`, which their query DTO refuses). */
124
82
  function readPageQuery(kind, q) {
125
- if (kind === 'policies' && text(q, 'after') !== undefined)
126
- invalid('after', 'policies are paged by offset: after is not supported');
127
83
  return { kind, ...scope(q), ...page(q) };
128
84
  }
129
85
  /** The AuthzAdminOptions of a single-command route: `reason`, `idempotencyKey`, `dryRun`. */
130
86
  function readWriteOptions(q) {
131
- const reason = text(q, 'reason');
132
- const idempotencyKey = text(q, 'idempotencyKey');
133
- const dryRun = flag(q, 'dryRun');
134
87
  return {
135
- ...(reason === undefined ? {} : { reason }),
136
- ...(idempotencyKey === undefined ? {} : { idempotencyKey }),
137
- ...(dryRun === undefined ? {} : { dryRun }),
88
+ ...(q.reason === undefined ? {} : { reason: q.reason }),
89
+ ...(q.idempotencyKey === undefined ? {} : { idempotencyKey: q.idempotencyKey }),
90
+ ...(q.dryRun === undefined ? {} : { dryRun: q.dryRun }),
138
91
  };
139
92
  }
140
93
  //# sourceMappingURL=query.js.map
@@ -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,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthzAdminAttributes = exports.AuthzAdminPage = exports.AuthzAdminResults = exports.AuthzCommandResult = exports.AuthzAdminError = void 0;
4
+ const primitives_js_1 = require("./primitives.js");
5
+ const errorShape = (0, primitives_js_1.obj)(['code', 'message'], { code: primitives_js_1.text, message: primitives_js_1.text, field: { ...primitives_js_1.text, description: 'the offending field, when one is known' } });
6
+ exports.AuthzAdminError = (0, primitives_js_1.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)');
7
+ const commandResult = {
8
+ oneOf: [(0, primitives_js_1.obj)(['ok', 'kind', 'affected'], { ok: { type: 'boolean', enum: [true] }, kind: primitives_js_1.text, id: primitives_js_1.text, token: { ...primitives_js_1.text, description: 'link.create only, shown once' }, affected: { type: 'integer' } }), (0, primitives_js_1.obj)(['ok', 'kind', 'error'], { ok: { type: 'boolean', enum: [false] }, kind: primitives_js_1.text, error: errorShape })],
9
+ };
10
+ exports.AuthzCommandResult = { ...commandResult, description: 'The outcome of one command' };
11
+ exports.AuthzAdminResults = (0, primitives_js_1.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');
12
+ exports.AuthzAdminPage = (0, primitives_js_1.obj)(['items', 'total'], { items: { type: 'array', items: primitives_js_1.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');
13
+ exports.AuthzAdminAttributes = { ...primitives_js_1.anyObject, description: 'The attributes of a scope' };
14
+ //# sourceMappingURL=answers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answers.js","sourceRoot":"","sources":["../../../src/schemas/answers.ts"],"names":[],"mappings":";;;AAAA,mDAAuD;AAGvD,MAAM,UAAU,GAAG,IAAA,mBAAG,EAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,oBAAI,EAAE,OAAO,EAAE,oBAAI,EAAE,KAAK,EAAE,EAAE,GAAG,oBAAI,EAAE,WAAW,EAAE,wCAAwC,EAAE,EAAE,CAAC,CAAC;AAEzI,QAAA,eAAe,GAAe,IAAA,mBAAG,EAAC,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,2WAA2W,CAAC,CAAC;AAE9b,MAAM,aAAa,GAAe;IAChC,KAAK,EAAE,CAAC,IAAA,mBAAG,EAAC,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,oBAAI,EAAE,EAAE,EAAE,oBAAI,EAAE,KAAK,EAAE,EAAE,GAAG,oBAAI,EAAE,WAAW,EAAE,8BAA8B,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,IAAA,mBAAG,EAAC,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,oBAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;CACnT,CAAC;AAEW,QAAA,kBAAkB,GAAe,EAAE,GAAG,aAAa,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;AAEjG,QAAA,iBAAiB,GAAe,IAAA,mBAAG,EAAC,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;AAE7S,QAAA,cAAc,GAAe,IAAA,mBAAG,EAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,yBAAS,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;AAEhV,QAAA,oBAAoB,GAAe,EAAE,GAAG,yBAAS,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"}
@@ -6,14 +6,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.CoreCommandSchemas = exports.AbacCommandSchemas = exports.RbacCommandSchemas = exports.commandSchemas = exports.COMMAND_KINDS = exports.policyBody = exports.ruleBody = void 0;
9
+ exports.CoreCommandSchemas = exports.AbacCommandSchemas = exports.RbacCommandSchemas = exports.AuthzAdminBatch = exports.commandSchemas = exports.COMMAND_KINDS = exports.policyBody = exports.ruleBody = void 0;
10
+ exports.commandFields = commandFields;
10
11
  const di_1 = require("@spinajs/di");
11
12
  const primitives_js_1 = require("./primitives.js");
12
13
  const registry_js_1 = require("./registry.js");
13
- const idOnly = { id: { ...primitives_js_1.text, description: 'the id of the row' } };
14
+ const idOnly = { id: { ...primitives_js_1.rowId, description: 'the id of the row' } };
14
15
  /** A rule as `rule.put` takes it; the condition language is described by @spinajs/authz. */
15
- exports.ruleBody = (0, primitives_js_1.obj)(['id', 'kind', 'scope'], {
16
- id: primitives_js_1.text,
16
+ exports.ruleBody = (0, primitives_js_1.closed)(['id', 'kind', 'scope'], {
17
+ id: primitives_js_1.rowId,
17
18
  kind: { type: 'string', enum: ['restrict', 'cap', 'threshold'] },
18
19
  scope: primitives_js_1.resourceRef,
19
20
  resourceTypes: { type: 'array', items: primitives_js_1.text },
@@ -21,8 +22,8 @@ exports.ruleBody = (0, primitives_js_1.obj)(['id', 'kind', 'scope'], {
21
22
  when: { ...primitives_js_1.anyObject, description: 'a Condition' },
22
23
  expiresAt: primitives_js_1.nullableDateTime,
23
24
  allow: { type: 'array', items: primitives_js_1.assignmentSubject },
24
- ladder: primitives_js_1.text,
25
- maxRole: { description: 'a role id, { ref } or null (drops the assignment)', nullable: true, oneOf: [primitives_js_1.text, primitives_js_1.anyObject] },
25
+ ladder: primitives_js_1.roleName,
26
+ maxRole: { description: 'a role id, { ref } or null (drops the assignment)', oneOf: [primitives_js_1.text, { ...primitives_js_1.anyObject, nullable: true }] },
26
27
  stripTags: { type: 'boolean' },
27
28
  assignments: primitives_js_1.anyObject,
28
29
  permissions: { type: 'array', items: primitives_js_1.text },
@@ -32,8 +33,8 @@ exports.ruleBody = (0, primitives_js_1.obj)(['id', 'kind', 'scope'], {
32
33
  reason: { ...primitives_js_1.anyObject, description: 'DenyReason: code, payload, priority, sortKey' },
33
34
  }, 'A RBAC rule in SQL form; the server sets `source`');
34
35
  /** A policy as `policy.put` takes it. */
35
- exports.policyBody = (0, primitives_js_1.obj)(['id', 'effect', 'permissions'], {
36
- id: primitives_js_1.text,
36
+ exports.policyBody = (0, primitives_js_1.closed)(['id', 'effect', 'permissions'], {
37
+ id: primitives_js_1.rowId,
37
38
  effect: { type: 'string', enum: ['permit', 'deny'] },
38
39
  permissions: { type: 'array', items: primitives_js_1.text, description: 'permission globs' },
39
40
  resourceTypes: { type: 'array', items: primitives_js_1.text },
@@ -49,17 +50,17 @@ exports.policyBody = (0, primitives_js_1.obj)(['id', 'effect', 'permissions'], {
49
50
  /** The command kinds the built-in sources describe: authz-rbac's, authz-abac's and the core's. */
50
51
  exports.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'];
51
52
  const rbacCommands = [
52
- (0, primitives_js_1.command)('assignment.grant', ['subject', 'role', 'scope'], { subject: primitives_js_1.assignmentSubject, role: primitives_js_1.text, scope: primitives_js_1.resourceRef, tags: primitives_js_1.tags, expiresAt: primitives_js_1.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'),
53
+ (0, primitives_js_1.command)('assignment.grant', ['subject', 'role', 'scope'], { subject: primitives_js_1.assignmentSubject, role: primitives_js_1.roleName, scope: primitives_js_1.resourceRef, tags: primitives_js_1.tags, expiresAt: primitives_js_1.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'),
53
54
  (0, primitives_js_1.command)('assignment.revoke', ['id'], idOnly, 'Revokes one assignment'),
54
- (0, primitives_js_1.command)('assignment.revokeWhere', ['scope'], { scope: primitives_js_1.resourceRef, subject: primitives_js_1.assignmentSubject, role: primitives_js_1.text }, 'Revokes the assignments at a scope, narrowed by subject and role'),
55
+ (0, primitives_js_1.command)('assignment.revokeWhere', ['scope'], { scope: primitives_js_1.resourceRef, subject: primitives_js_1.assignmentSubject, role: primitives_js_1.roleName }, 'Revokes the assignments at a scope, narrowed by subject and role'),
55
56
  (0, primitives_js_1.command)('assignment.setTags', ['id', 'tags'], { ...idOnly, tags: primitives_js_1.tags }, 'Replaces the tags of an assignment'),
56
57
  (0, primitives_js_1.command)('assignment.addTags', ['id', 'tags'], { ...idOnly, tags: primitives_js_1.tags }, 'Adds tags to an assignment'),
57
58
  (0, primitives_js_1.command)('assignment.removeTags', ['id', 'tags'], { ...idOnly, tags: primitives_js_1.tags }, 'Removes tags from an assignment'),
58
59
  (0, primitives_js_1.command)('assignment.setExpiry', ['id', 'expiresAt'], { ...idOnly, expiresAt: primitives_js_1.nullableDateTime }, 'Sets or clears the expiry of an assignment'),
59
60
  (0, primitives_js_1.command)('set.addMember', ['set', 'member'], { set: primitives_js_1.roleSet, member: primitives_js_1.principalRef, expiresAt: primitives_js_1.nullableDateTime }, 'Adds a principal to a subject set (group.member at group:G)'),
60
61
  (0, primitives_js_1.command)('set.removeMember', ['set', 'member'], { set: primitives_js_1.roleSet, member: primitives_js_1.principalRef }, 'Removes a principal from a subject set'),
61
- (0, primitives_js_1.command)('link.create', ['scope', 'role'], { scope: primitives_js_1.resourceRef, role: primitives_js_1.text, tags: primitives_js_1.tags, expiresAt: primitives_js_1.nullableDateTime, attributes: primitives_js_1.anyObject }, 'Creates a share link; the answer carries its token, shown once'),
62
- (0, primitives_js_1.command)('link.update', ['id'], { ...idOnly, expiresAt: primitives_js_1.nullableDateTime, attributes: primitives_js_1.anyObject, role: primitives_js_1.text, tags: primitives_js_1.tags }, 'Changes a share link'),
62
+ (0, primitives_js_1.command)('link.create', ['scope', 'role'], { scope: primitives_js_1.resourceRef, role: primitives_js_1.roleName, tags: primitives_js_1.tags, expiresAt: primitives_js_1.nullableDateTime, attributes: primitives_js_1.anyObject }, 'Creates a share link; the answer carries its token, shown once'),
63
+ (0, primitives_js_1.command)('link.update', ['id'], { ...idOnly, expiresAt: primitives_js_1.nullableDateTime, attributes: primitives_js_1.anyObject, role: primitives_js_1.roleName, tags: primitives_js_1.tags }, 'Changes a share link'),
63
64
  (0, primitives_js_1.command)('link.revoke', ['id'], idOnly, 'Revokes a share link'),
64
65
  (0, primitives_js_1.command)('rule.put', ['rule'], { rule: exports.ruleBody }, 'Inserts or replaces a RBAC rule by id'),
65
66
  (0, primitives_js_1.command)('rule.delete', ['id'], idOnly, 'Deletes a RBAC rule'),
@@ -76,6 +77,13 @@ const coreCommands = [
76
77
  /** The schemas of the built-in sources, in COMMAND_KINDS order. */
77
78
  exports.commandSchemas = [...rbacCommands, ...abacCommands, ...coreCommands];
78
79
  const byKind = (schemas) => Object.fromEntries(schemas.map((s) => [s.properties.kind.enum[0], s]));
80
+ /** The batch body over the built-in command schemas; AuthzAdminSchemaProvider serves it over every registered source. */
81
+ exports.AuthzAdminBatch = (0, primitives_js_1.commandBatch)(exports.commandSchemas);
82
+ /** The properties of a built-in command without `kind`: the body of the route that runs that one command. */
83
+ function commandFields(kind) {
84
+ const { kind: _kind, ...fields } = byKind(exports.commandSchemas)[kind].properties;
85
+ return fields;
86
+ }
79
87
  /** The commands of @spinajs/authz-rbac. */
80
88
  let RbacCommandSchemas = class RbacCommandSchemas extends registry_js_1.AuthzCommandSchemaSource {
81
89
  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,79 +1,68 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AUTHZ_ADMIN_ROUTES = void 0;
4
3
  exports.describeAuthzAdminDocument = describeAuthzAdminDocument;
4
+ const http_1 = require("@spinajs/http");
5
+ const validation_1 = require("@spinajs/validation");
6
+ const AuthzAdminController_js_1 = require("../controllers/AuthzAdminController.js");
7
+ const commands_js_1 = require("./commands.js");
5
8
  const provider_js_1 = require("./provider.js");
6
- const WRITE_OPTIONS = ['reason', 'idempotencyKey', 'dryRun'];
7
- const QUERY = {
8
- scope: { schema: { type: 'string' }, description: '`<type>` or `<type>:<id>`, split at the first `:`; `$global` is the global scope' },
9
- subject: { schema: { type: 'string' }, description: '`<type>:<id>` (a principal) or `set:<role>@<type>:<id>` (a subject set)' },
10
- role: { schema: { type: 'string' }, description: 'only assignments of this role' },
11
- permission: { schema: { type: 'string' }, description: 'the permission whose holders are listed (required)' },
12
- expandSets: { schema: { type: 'boolean' }, description: '`true` also lists the members of each subject set, next to the set itself' },
13
- includeExpired: { schema: { type: 'boolean' }, description: '`true` or `false`' },
14
- limit: { schema: { type: 'integer', minimum: 0 }, description: 'page size; the server sets the default' },
15
- offset: { schema: { type: 'integer', minimum: 0 }, description: 'rows to skip' },
16
- after: { schema: { type: 'string' }, description: 'the `next` of the previous page: continues behind its last row; give it instead of `offset`' },
17
- reason: { schema: { type: 'string' }, description: 'goes to the audit trail' },
18
- idempotencyKey: { schema: { type: 'string' }, description: 'a retried request with the same key returns the first result' },
19
- dryRun: { schema: { type: 'boolean' }, description: '`true` validates and guards, then rolls back' },
20
- };
21
- const PATH_PARAMS = {
22
- id: 'the id of the row (assignment, link, rule, policy) or of the scope node',
23
- type: 'the resource type of the scope node',
24
- };
25
- /** What each route takes that the controller's signature cannot say: its body and its query string. */
26
- exports.AUTHZ_ADMIN_ROUTES = [
27
- { method: 'post', path: '/authz/commands', body: 'AuthzAdminBatch' },
28
- { method: 'get', path: '/authz/assignments', query: ['scope', 'subject', 'role', 'includeExpired', 'limit', 'offset', 'after'] },
29
- { method: 'get', path: '/authz/holders', query: ['scope', 'permission', 'expandSets', 'limit', 'offset', 'after'], requiredQuery: ['scope', 'permission'] },
30
- { method: 'post', path: '/authz/assignments', body: 'AuthzAssignmentGrant', query: WRITE_OPTIONS },
31
- { method: 'patch', path: '/authz/assignments/{id}', body: 'AuthzAssignmentPatch', query: WRITE_OPTIONS },
32
- { method: 'delete', path: '/authz/assignments/{id}', query: WRITE_OPTIONS },
33
- { method: 'get', path: '/authz/links', query: ['scope', 'limit', 'offset', 'after'] },
34
- { method: 'post', path: '/authz/links', body: 'AuthzLinkCreate', query: WRITE_OPTIONS },
35
- { method: 'patch', path: '/authz/links/{id}', body: 'AuthzLinkPatch', query: WRITE_OPTIONS },
36
- { method: 'delete', path: '/authz/links/{id}', query: WRITE_OPTIONS },
37
- { method: 'get', path: '/authz/rules', query: ['scope', 'limit', 'offset', 'after'] },
38
- { method: 'put', path: '/authz/rules/{id}', body: 'AuthzRuleBody', query: WRITE_OPTIONS },
39
- { method: 'delete', path: '/authz/rules/{id}', query: WRITE_OPTIONS },
40
- { method: 'get', path: '/authz/policies', query: ['scope', 'limit', 'offset'] },
41
- { method: 'put', path: '/authz/policies/{id}', body: 'AuthzPolicyBody', query: WRITE_OPTIONS },
42
- { method: 'delete', path: '/authz/policies/{id}', query: WRITE_OPTIONS },
43
- { method: 'get', path: '/authz/scopes/{type}/{id}/attributes' },
44
- { method: 'patch', path: '/authz/scopes/{type}/{id}/attributes', body: 'AuthzAttributesPatch', query: WRITE_OPTIONS },
45
- { method: 'put', path: '/authz/scopes/{type}/{id}/attributes', body: 'AuthzAttributesBody', query: WRITE_OPTIONS },
46
- ];
9
+ /** The answers and the batch body over the built-in command kinds. */
10
+ const DEFAULT_SCHEMAS = { ...provider_js_1.AUTHZ_ADMIN_SCHEMAS, AuthzAdminBatch: commands_js_1.AuthzAdminBatch };
11
+ function schemaOf(param) {
12
+ const type = param.RuntimeType;
13
+ return type?.prototype ? Reflect.getMetadata(validation_1.SCHEMA_SYMBOL, type.prototype) : undefined;
14
+ }
15
+ const jsonBody = (schema) => ({ required: true, content: { 'application/json': { schema } } });
16
+ /** The request body or the query parameters a custom route arg of the controller takes, which http-swagger does not know. */
17
+ function describeArg(operation, param) {
18
+ const schema = schemaOf(param);
19
+ if (param.Type === 'AuthzAdminBatchArg') {
20
+ operation.requestBody = jsonBody({ $ref: '#/components/schemas/AuthzAdminBatch' });
21
+ }
22
+ else if (param.Type === 'AuthzAdminBodyArg' && schema) {
23
+ const { $id: _id, ...documented } = schema;
24
+ operation.requestBody = jsonBody(documented);
25
+ }
26
+ else if (param.Type === 'AuthzAdminQueryArg' && schema) {
27
+ const parameters = (operation.parameters ??= []);
28
+ const required = schema.required ?? [];
29
+ for (const [name, property] of Object.entries(schema.properties ?? {})) {
30
+ if (parameters.some((p) => p.in === 'query' && p.name === name))
31
+ continue;
32
+ const { description, ...value } = property;
33
+ parameters.push({ name, in: 'query', required: required.includes(name), schema: value, ...(typeof description === 'string' ? { description } : {}) });
34
+ }
35
+ }
36
+ }
47
37
  /**
48
- * http-swagger describes a route's body and query string from decorated arguments, and the admin
49
- * routes read both from `@Req()` so that no http-layer step can refuse what AuthzAdmin would answer.
50
- * This adds what the builder cannot see to an OpenAPI document it built: the request bodies, the
51
- * query parameters, the path parameter text and the body schemas as components. Operations are
52
- * matched by method and path suffix, so a route prefix does not matter. `basePath` is the configured
53
- * `authz.http.admin.basePath` when the app moved the routes. Changes the document in place.
54
- * Pass `AuthzAdminSchemaProvider.schemas()` as `schemas` to list the commands every registered model contributes.
38
+ * http-swagger documents the `@Body()` DTOs and the `@Param()` schemas of the admin routes itself.
39
+ * This adds what it cannot see, read from the same DTOs and registry the routes validate against:
40
+ * the body of POST /authz/commands (`$ref` AuthzAdminBatch, built from the registered
41
+ * AuthzCommandSchemaSources), the attribute bodies (`@AdminBody()`), the query parameters of each
42
+ * query DTO (`@AdminQuery()`) and the path parameter text. Operations are matched by method and path
43
+ * suffix, so a route prefix does not matter; `basePath` is the configured `authz.http.admin.basePath`
44
+ * when the app moved the routes. Changes the document in place. Pass `AuthzAdminSchemaProvider.schemas()`
45
+ * as `schemas` to list the commands every registered model contributes.
55
46
  */
56
- function describeAuthzAdminDocument(doc, basePath = 'authz', schemas = provider_js_1.AUTHZ_ADMIN_SCHEMAS) {
47
+ function describeAuthzAdminDocument(doc, basePath = 'authz', schemas = DEFAULT_SCHEMAS) {
57
48
  const document = doc;
58
49
  const components = ((document.components ??= {}).schemas ??= {});
59
50
  for (const [name, schema] of Object.entries(schemas))
60
51
  components[name] ??= schema;
61
- for (const route of exports.AUTHZ_ADMIN_ROUTES) {
62
- const routePath = route.path.replace(/^\/authz/, `/${basePath.replace(/^\/+|\/+$/g, '')}`);
63
- const path = Object.keys(document.paths ?? {}).find((p) => p === routePath || p.endsWith(routePath));
64
- const operation = path ? document.paths[path][route.method] : undefined;
52
+ const base = basePath.replace(/^\/+|\/+$/g, '');
53
+ const paths = document.paths ?? {};
54
+ const descriptor = Reflect.getMetadata(http_1.CONTROLLED_DESCRIPTOR_SYMBOL, AuthzAdminController_js_1.AuthzAdminController.prototype);
55
+ for (const route of descriptor.Routes.values()) {
56
+ const routePath = `/${base}/${(route.Path ?? '').replace(/:(\w+)/g, '{$1}')}`;
57
+ const path = Object.keys(paths).find((p) => p === routePath || p.endsWith(routePath));
58
+ const operation = path ? paths[path][route.Type] : undefined;
65
59
  if (!operation)
66
60
  continue;
67
- if (route.body)
68
- operation.requestBody = { required: true, content: { 'application/json': { schema: { $ref: `#/components/schemas/${route.body}` } } } };
69
- const parameters = (operation.parameters ??= []);
70
- for (const p of parameters)
71
- if (p.in === 'path' && !p.description)
72
- p.description = PATH_PARAMS[p.name];
73
- for (const name of route.query ?? []) {
74
- if (!parameters.some((p) => p.in === 'query' && p.name === name))
75
- parameters.push({ name, in: 'query', required: route.requiredQuery?.includes(name) === true, ...QUERY[name] });
76
- }
61
+ for (const param of route.Parameters.values())
62
+ describeArg(operation, param);
63
+ for (const p of operation.parameters ?? [])
64
+ if (p.in === 'path' && !p.description && typeof p.schema?.description === 'string')
65
+ p.description = p.schema.description;
77
66
  }
78
67
  return doc;
79
68
  }
@@ -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"}
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./answers.js"), exports);
17
18
  __exportStar(require("./commands.js"), exports);
18
- __exportStar(require("./bodies.js"), exports);
19
19
  __exportStar(require("./provider.js"), exports);
20
20
  __exportStar(require("./document.js"), exports);
21
21
  __exportStar(require("./registry.js"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,gDAA8B;AAC9B,8CAA4B;AAC5B,gDAA8B;AAC9B,gDAA8B;AAC9B,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,+CAA6B;AAC7B,gDAA8B;AAC9B,gDAA8B;AAC9B,gDAA8B;AAC9B,gDAA8B"}