@opentdf/sdk 0.4.0-beta.4 → 0.4.0-beta.41

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 (217) hide show
  1. package/dist/cjs/src/access/access-fetch.js +2 -1
  2. package/dist/cjs/src/access/access-rpc.js +11 -5
  3. package/dist/cjs/src/access/constants.js +6 -0
  4. package/dist/cjs/src/access.js +39 -4
  5. package/dist/cjs/src/auth/oidc-clientcredentials-provider.js +4 -2
  6. package/dist/cjs/src/auth/oidc-externaljwt-provider.js +5 -3
  7. package/dist/cjs/src/auth/oidc-refreshtoken-provider.js +19 -3
  8. package/dist/cjs/src/auth/oidc.js +9 -8
  9. package/dist/cjs/src/auth/providers.js +7 -1
  10. package/dist/cjs/src/index.js +4 -2
  11. package/dist/cjs/src/nanoclients.js +4 -4
  12. package/dist/cjs/src/nanotdf/Client.js +10 -6
  13. package/dist/cjs/src/opentdf.js +103 -13
  14. package/dist/cjs/src/platform/authorization/v2/authorization_pb.js +112 -0
  15. package/dist/cjs/src/platform/buf/validate/validate_pb.js +114 -170
  16. package/dist/cjs/src/platform/common/common_pb.js +16 -5
  17. package/dist/cjs/src/platform/entity/entity_pb.js +51 -0
  18. package/dist/cjs/src/platform/entityresolution/entity_resolution_pb.js +1 -1
  19. package/dist/cjs/src/platform/entityresolution/v2/entity_resolution_pb.js +49 -0
  20. package/dist/cjs/src/platform/google/api/annotations_pb.js +1 -1
  21. package/dist/cjs/src/platform/google/api/http_pb.js +3 -3
  22. package/dist/cjs/src/platform/kas/kas_pb.js +2 -2
  23. package/dist/cjs/src/platform/policy/attributes/attributes_pb.js +12 -2
  24. package/dist/cjs/src/platform/policy/kasregistry/key_access_server_registry_pb.js +57 -4
  25. package/dist/cjs/src/platform/policy/keymanagement/key_management_pb.js +2 -2
  26. package/dist/cjs/src/platform/policy/namespaces/namespaces_pb.js +31 -4
  27. package/dist/cjs/src/platform/policy/objects_pb.js +116 -42
  28. package/dist/cjs/src/platform/policy/obligations/obligations_pb.js +159 -0
  29. package/dist/cjs/src/platform/policy/registeredresources/registered_resources_pb.js +20 -15
  30. package/dist/cjs/src/platform/policy/resourcemapping/resource_mapping_pb.js +2 -3
  31. package/dist/cjs/src/platform/policy/selectors_pb.js +1 -1
  32. package/dist/cjs/src/platform/policy/subjectmapping/subject_mapping_pb.js +2 -3
  33. package/dist/cjs/src/platform/policy/unsafe/unsafe_pb.js +2 -4
  34. package/dist/cjs/src/platform.js +20 -3
  35. package/dist/cjs/src/policy/api.js +27 -7
  36. package/dist/cjs/src/policy/granter.js +75 -48
  37. package/dist/cjs/src/seekable.js +32 -1
  38. package/dist/cjs/src/utils.js +85 -3
  39. package/dist/cjs/tdf3/src/assertions.js +39 -2
  40. package/dist/cjs/tdf3/src/client/DecoratedReadableStream.js +8 -1
  41. package/dist/cjs/tdf3/src/client/builders.js +13 -1
  42. package/dist/cjs/tdf3/src/client/index.js +213 -54
  43. package/dist/cjs/tdf3/src/client/validation.js +3 -3
  44. package/dist/cjs/tdf3/src/tdf.js +42 -9
  45. package/dist/cjs/tdf3/src/utils/unwrap.js +2 -2
  46. package/dist/types/src/access/access-fetch.d.ts +1 -0
  47. package/dist/types/src/access/access-fetch.d.ts.map +1 -1
  48. package/dist/types/src/access/access-rpc.d.ts +2 -1
  49. package/dist/types/src/access/access-rpc.d.ts.map +1 -1
  50. package/dist/types/src/access/constants.d.ts +3 -0
  51. package/dist/types/src/access/constants.d.ts.map +1 -0
  52. package/dist/types/src/access.d.ts +30 -1
  53. package/dist/types/src/access.d.ts.map +1 -1
  54. package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts +1 -1
  55. package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts.map +1 -1
  56. package/dist/types/src/auth/oidc-externaljwt-provider.d.ts +1 -1
  57. package/dist/types/src/auth/oidc-externaljwt-provider.d.ts.map +1 -1
  58. package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts +15 -1
  59. package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts.map +1 -1
  60. package/dist/types/src/auth/oidc.d.ts +4 -0
  61. package/dist/types/src/auth/oidc.d.ts.map +1 -1
  62. package/dist/types/src/auth/providers.d.ts.map +1 -1
  63. package/dist/types/src/index.d.ts +1 -0
  64. package/dist/types/src/index.d.ts.map +1 -1
  65. package/dist/types/src/nanotdf/Client.d.ts +8 -1
  66. package/dist/types/src/nanotdf/Client.d.ts.map +1 -1
  67. package/dist/types/src/opentdf.d.ts +137 -6
  68. package/dist/types/src/opentdf.d.ts.map +1 -1
  69. package/dist/types/src/platform/authorization/v2/authorization_pb.d.ts +439 -0
  70. package/dist/types/src/platform/authorization/v2/authorization_pb.d.ts.map +1 -0
  71. package/dist/types/src/platform/buf/validate/validate_pb.d.ts +495 -370
  72. package/dist/types/src/platform/buf/validate/validate_pb.d.ts.map +1 -1
  73. package/dist/types/src/platform/common/common_pb.d.ts +36 -0
  74. package/dist/types/src/platform/common/common_pb.d.ts.map +1 -1
  75. package/dist/types/src/platform/entity/entity_pb.d.ts +130 -0
  76. package/dist/types/src/platform/entity/entity_pb.d.ts.map +1 -0
  77. package/dist/types/src/platform/entityresolution/entity_resolution_pb.d.ts +4 -0
  78. package/dist/types/src/platform/entityresolution/entity_resolution_pb.d.ts.map +1 -1
  79. package/dist/types/src/platform/entityresolution/v2/entity_resolution_pb.d.ts +136 -0
  80. package/dist/types/src/platform/entityresolution/v2/entity_resolution_pb.d.ts.map +1 -0
  81. package/dist/types/src/platform/google/api/http_pb.d.ts.map +1 -1
  82. package/dist/types/src/platform/kas/kas_pb.d.ts +5 -0
  83. package/dist/types/src/platform/kas/kas_pb.d.ts.map +1 -1
  84. package/dist/types/src/platform/policy/attributes/attributes_pb.d.ts +44 -13
  85. package/dist/types/src/platform/policy/attributes/attributes_pb.d.ts.map +1 -1
  86. package/dist/types/src/platform/policy/kasregistry/key_access_server_registry_pb.d.ts +329 -24
  87. package/dist/types/src/platform/policy/kasregistry/key_access_server_registry_pb.d.ts.map +1 -1
  88. package/dist/types/src/platform/policy/keymanagement/key_management_pb.d.ts +20 -1
  89. package/dist/types/src/platform/policy/keymanagement/key_management_pb.d.ts.map +1 -1
  90. package/dist/types/src/platform/policy/namespaces/namespaces_pb.d.ts +143 -5
  91. package/dist/types/src/platform/policy/namespaces/namespaces_pb.d.ts.map +1 -1
  92. package/dist/types/src/platform/policy/objects_pb.d.ts +382 -33
  93. package/dist/types/src/platform/policy/objects_pb.d.ts.map +1 -1
  94. package/dist/types/src/platform/policy/obligations/obligations_pb.d.ts +670 -0
  95. package/dist/types/src/platform/policy/obligations/obligations_pb.d.ts.map +1 -0
  96. package/dist/types/src/platform/policy/registeredresources/registered_resources_pb.d.ts +67 -0
  97. package/dist/types/src/platform/policy/registeredresources/registered_resources_pb.d.ts.map +1 -1
  98. package/dist/types/src/platform/policy/resourcemapping/resource_mapping_pb.d.ts.map +1 -1
  99. package/dist/types/src/platform/policy/selectors_pb.d.ts +18 -0
  100. package/dist/types/src/platform/policy/selectors_pb.d.ts.map +1 -1
  101. package/dist/types/src/platform/policy/subjectmapping/subject_mapping_pb.d.ts.map +1 -1
  102. package/dist/types/src/platform/policy/unsafe/unsafe_pb.d.ts +18 -4
  103. package/dist/types/src/platform/policy/unsafe/unsafe_pb.d.ts.map +1 -1
  104. package/dist/types/src/platform.d.ts +21 -0
  105. package/dist/types/src/platform.d.ts.map +1 -1
  106. package/dist/types/src/policy/api.d.ts +2 -0
  107. package/dist/types/src/policy/api.d.ts.map +1 -1
  108. package/dist/types/src/policy/granter.d.ts +11 -6
  109. package/dist/types/src/policy/granter.d.ts.map +1 -1
  110. package/dist/types/src/seekable.d.ts +31 -0
  111. package/dist/types/src/seekable.d.ts.map +1 -1
  112. package/dist/types/src/utils.d.ts +61 -2
  113. package/dist/types/src/utils.d.ts.map +1 -1
  114. package/dist/types/tdf3/src/assertions.d.ts +4 -0
  115. package/dist/types/tdf3/src/assertions.d.ts.map +1 -1
  116. package/dist/types/tdf3/src/client/DecoratedReadableStream.d.ts +6 -0
  117. package/dist/types/tdf3/src/client/DecoratedReadableStream.d.ts.map +1 -1
  118. package/dist/types/tdf3/src/client/builders.d.ts +14 -0
  119. package/dist/types/tdf3/src/client/builders.d.ts.map +1 -1
  120. package/dist/types/tdf3/src/client/index.d.ts +25 -4
  121. package/dist/types/tdf3/src/client/index.d.ts.map +1 -1
  122. package/dist/types/tdf3/src/client/validation.d.ts +3 -3
  123. package/dist/types/tdf3/src/client/validation.d.ts.map +1 -1
  124. package/dist/types/tdf3/src/tdf.d.ts +3 -1
  125. package/dist/types/tdf3/src/tdf.d.ts.map +1 -1
  126. package/dist/types/tdf3/src/utils/unwrap.d.ts.map +1 -1
  127. package/dist/web/src/access/access-fetch.js +2 -1
  128. package/dist/web/src/access/access-rpc.js +11 -5
  129. package/dist/web/src/access/constants.js +3 -0
  130. package/dist/web/src/access.js +37 -3
  131. package/dist/web/src/auth/oidc-clientcredentials-provider.js +4 -2
  132. package/dist/web/src/auth/oidc-externaljwt-provider.js +5 -3
  133. package/dist/web/src/auth/oidc-refreshtoken-provider.js +19 -3
  134. package/dist/web/src/auth/oidc.js +9 -8
  135. package/dist/web/src/auth/providers.js +7 -1
  136. package/dist/web/src/index.js +2 -1
  137. package/dist/web/src/nanoclients.js +4 -4
  138. package/dist/web/src/nanotdf/Client.js +11 -7
  139. package/dist/web/src/opentdf.js +103 -13
  140. package/dist/web/src/platform/authorization/v2/authorization_pb.js +109 -0
  141. package/dist/web/src/platform/buf/validate/validate_pb.js +113 -169
  142. package/dist/web/src/platform/common/common_pb.js +15 -4
  143. package/dist/web/src/platform/entity/entity_pb.js +48 -0
  144. package/dist/web/src/platform/entityresolution/entity_resolution_pb.js +1 -1
  145. package/dist/web/src/platform/entityresolution/v2/entity_resolution_pb.js +46 -0
  146. package/dist/web/src/platform/google/api/annotations_pb.js +1 -1
  147. package/dist/web/src/platform/google/api/http_pb.js +3 -3
  148. package/dist/web/src/platform/kas/kas_pb.js +2 -2
  149. package/dist/web/src/platform/policy/attributes/attributes_pb.js +12 -2
  150. package/dist/web/src/platform/policy/kasregistry/key_access_server_registry_pb.js +55 -3
  151. package/dist/web/src/platform/policy/keymanagement/key_management_pb.js +2 -2
  152. package/dist/web/src/platform/policy/namespaces/namespaces_pb.js +30 -3
  153. package/dist/web/src/platform/policy/objects_pb.js +114 -41
  154. package/dist/web/src/platform/policy/obligations/obligations_pb.js +156 -0
  155. package/dist/web/src/platform/policy/registeredresources/registered_resources_pb.js +19 -14
  156. package/dist/web/src/platform/policy/resourcemapping/resource_mapping_pb.js +2 -3
  157. package/dist/web/src/platform/policy/selectors_pb.js +1 -1
  158. package/dist/web/src/platform/policy/subjectmapping/subject_mapping_pb.js +2 -3
  159. package/dist/web/src/platform/policy/unsafe/unsafe_pb.js +2 -4
  160. package/dist/web/src/platform.js +20 -3
  161. package/dist/web/src/policy/api.js +26 -7
  162. package/dist/web/src/policy/granter.js +75 -48
  163. package/dist/web/src/seekable.js +32 -1
  164. package/dist/web/src/utils.js +84 -3
  165. package/dist/web/tdf3/src/assertions.js +38 -2
  166. package/dist/web/tdf3/src/client/DecoratedReadableStream.js +8 -1
  167. package/dist/web/tdf3/src/client/builders.js +13 -1
  168. package/dist/web/tdf3/src/client/index.js +215 -57
  169. package/dist/web/tdf3/src/client/validation.js +3 -3
  170. package/dist/web/tdf3/src/tdf.js +42 -9
  171. package/dist/web/tdf3/src/utils/unwrap.js +2 -2
  172. package/package.json +7 -5
  173. package/src/access/access-fetch.ts +1 -0
  174. package/src/access/access-rpc.ts +13 -4
  175. package/src/access/constants.ts +2 -0
  176. package/src/access.ts +54 -2
  177. package/src/auth/oidc-clientcredentials-provider.ts +4 -0
  178. package/src/auth/oidc-externaljwt-provider.ts +5 -1
  179. package/src/auth/oidc-refreshtoken-provider.ts +19 -1
  180. package/src/auth/oidc.ts +12 -7
  181. package/src/auth/providers.ts +6 -0
  182. package/src/index.ts +1 -0
  183. package/src/nanoclients.ts +3 -3
  184. package/src/nanotdf/Client.ts +28 -6
  185. package/src/opentdf.ts +206 -73
  186. package/src/platform/authorization/v2/authorization_pb.ts +503 -0
  187. package/src/platform/buf/validate/validate_pb.ts +529 -401
  188. package/src/platform/common/common_pb.ts +48 -3
  189. package/src/platform/entity/entity_pb.ts +154 -0
  190. package/src/platform/entityresolution/entity_resolution_pb.ts +4 -0
  191. package/src/platform/entityresolution/v2/entity_resolution_pb.ts +170 -0
  192. package/src/platform/google/api/annotations_pb.ts +1 -1
  193. package/src/platform/google/api/http_pb.ts +2 -2
  194. package/src/platform/kas/kas_pb.ts +6 -1
  195. package/src/platform/policy/attributes/attributes_pb.ts +46 -16
  196. package/src/platform/policy/kasregistry/key_access_server_registry_pb.ts +371 -27
  197. package/src/platform/policy/keymanagement/key_management_pb.ts +24 -2
  198. package/src/platform/policy/namespaces/namespaces_pb.ts +163 -7
  199. package/src/platform/policy/objects_pb.ts +474 -59
  200. package/src/platform/policy/obligations/obligations_pb.ts +788 -0
  201. package/src/platform/policy/registeredresources/registered_resources_pb.ts +80 -13
  202. package/src/platform/policy/resourcemapping/resource_mapping_pb.ts +1 -2
  203. package/src/platform/policy/selectors_pb.ts +18 -0
  204. package/src/platform/policy/subjectmapping/subject_mapping_pb.ts +1 -2
  205. package/src/platform/policy/unsafe/unsafe_pb.ts +21 -6
  206. package/src/platform.ts +29 -5
  207. package/src/policy/api.ts +37 -6
  208. package/src/policy/granter.ts +82 -56
  209. package/src/seekable.ts +31 -0
  210. package/src/utils.ts +88 -2
  211. package/tdf3/src/assertions.ts +52 -1
  212. package/tdf3/src/client/DecoratedReadableStream.ts +9 -0
  213. package/tdf3/src/client/builders.ts +16 -0
  214. package/tdf3/src/client/index.ts +309 -73
  215. package/tdf3/src/client/validation.ts +2 -2
  216. package/tdf3/src/tdf.ts +53 -9
  217. package/tdf3/src/utils/unwrap.ts +2 -1
@@ -156,7 +156,7 @@ class Client {
156
156
  this.iv = 1;
157
157
  }
158
158
  else {
159
- const { allowedKases, ignoreAllowList, authProvider, dpopEnabled, dpopKeys, ephemeralKeyPair, kasEndpoint, platformUrl, } = optsOrOldAuthProvider;
159
+ const { allowedKases, fulfillableObligationFQNs = [], ignoreAllowList, authProvider, dpopEnabled, dpopKeys, ephemeralKeyPair, kasEndpoint, platformUrl, } = optsOrOldAuthProvider;
160
160
  this.authProvider = enwrapAuthProvider(authProvider);
161
161
  // TODO Disallow http KAS. For now just log as error
162
162
  (0, utils_js_1.validateSecureUrl)(kasEndpoint);
@@ -165,6 +165,7 @@ class Client {
165
165
  if (allowedKases?.length || ignoreAllowList) {
166
166
  this.allowedKases = new access_js_1.OriginAllowList(allowedKases || [], ignoreAllowList);
167
167
  }
168
+ this.fulfillableObligationFQNs = fulfillableObligationFQNs;
168
169
  this.dpopEnabled = !!dpopEnabled;
169
170
  if (dpopKeys) {
170
171
  this.requestSignerKeyPair = dpopKeys;
@@ -231,16 +232,16 @@ class Client {
231
232
  alg: toJWSAlg(requestSignerKeyPair.publicKey),
232
233
  });
233
234
  // Wrapped
234
- const wrappedKey = await (0, access_js_1.fetchWrappedKey)(kasRewrapUrl, signedRequestToken, this.authProvider);
235
+ const rewrapResp = await (0, access_js_1.fetchWrappedKey)(kasRewrapUrl, signedRequestToken, this.authProvider, this.fulfillableObligationFQNs);
235
236
  // Extract the iv and ciphertext
236
- const entityWrappedKey = wrappedKey.entityWrappedKey;
237
+ const entityWrappedKey = rewrapResp.entityWrappedKey;
237
238
  const ivLength = clientVersion == Client.SDK_INITIAL_RELEASE ? Client.INITIAL_RELEASE_IV_SIZE : Client.IV_SIZE;
238
239
  const iv = entityWrappedKey.subarray(0, ivLength);
239
240
  const encryptedSharedKey = entityWrappedKey.subarray(ivLength);
240
241
  let kasPublicKey;
241
242
  try {
242
243
  // Let us import public key as a cert or public key
243
- kasPublicKey = await (0, utils_js_1.pemToCryptoPublicKey)(wrappedKey.sessionPublicKey);
244
+ kasPublicKey = await (0, utils_js_1.pemToCryptoPublicKey)(rewrapResp.sessionPublicKey);
244
245
  }
245
246
  catch (cause) {
246
247
  throw new errors_js_1.ConfigurationError(`internal: [${kasRewrapUrl}] PEM Public Key to crypto public key failed. Is PEM formatted correctly?`, cause);
@@ -293,7 +294,10 @@ class Client {
293
294
  catch (cause) {
294
295
  throw new errors_js_1.DecryptError('Unable to import raw key.', cause);
295
296
  }
296
- return unwrappedKey;
297
+ return {
298
+ requiredObligations: (0, utils_js_1.getRequiredObligationFQNs)(rewrapResp),
299
+ unwrappedKey: unwrappedKey,
300
+ };
297
301
  }
298
302
  }
299
303
  Client.KEY_ACCESS_REMOTE = 'remote';
@@ -302,4 +306,4 @@ Client.SDK_INITIAL_RELEASE = '0.0.0';
302
306
  Client.INITIAL_RELEASE_IV_SIZE = 3;
303
307
  Client.IV_SIZE = 12;
304
308
  exports.default = Client;
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25hbm90ZGYvQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0RBQWlEO0FBQ2pELHlEQUEyRTtBQUMzRSw4RUFBbUQ7QUFDbkQsaUZBQXNEO0FBQ3RELDRDQUtzQjtBQUN0Qix1REFBa0Y7QUFDbEYsNENBQTBGO0FBQzFGLDBDQUF5RjtBQWF6RixTQUFTLFFBQVEsQ0FBQyxDQUFZO0lBQzVCLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEIsUUFBUSxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsS0FBSyxtQkFBbUIsQ0FBQztRQUN6QixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNoQixNQUFNLENBQUMsR0FBRyxTQUFrQyxDQUFDO1lBQzdDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN4QixLQUFLLElBQUk7b0JBQ1AsT0FBTyxPQUFPLENBQUM7Z0JBQ2pCLEtBQUssSUFBSTtvQkFDUCxPQUFPLE9BQU8sQ0FBQztnQkFDakIsS0FBSyxJQUFJO29CQUNQLE9BQU8sT0FBTyxDQUFDO1lBQ25CLENBQUM7WUFDRCxNQUFNO1FBQ1IsQ0FBQztRQUNELEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ1osT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLElBQUksOEJBQWtCLENBQUMsNkJBQTZCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3pGLENBQUM7QUFFRCxLQUFLLFVBQVUsd0JBQXdCO0lBQ3JDLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxJ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
309
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25hbm90ZGYvQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0RBQWlEO0FBQ2pELHlEQUEyRTtBQUMzRSw4RUFBbUQ7QUFDbkQsaUZBQXNEO0FBQ3RELDRDQUtzQjtBQUN0Qix1REFBa0Y7QUFDbEYsNENBQTBGO0FBQzFGLDBDQUtxQjtBQW1CckIsU0FBUyxRQUFRLENBQUMsQ0FBWTtJQUM1QixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLFFBQVEsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLEtBQUssbUJBQW1CLENBQUM7UUFDekIsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDaEIsTUFBTSxDQUFDLEdBQUcsU0FBa0MsQ0FBQztZQUM3QyxRQUFRLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDeEIsS0FBSyxJQUFJO29CQUNQLE9BQU8sT0FBTyxDQUFDO2dCQUNqQixLQUFLLElBQUk7b0JBQ1AsT0FBTyxPQUFPLENBQUM7Z0JBQ2pCLEtBQUssSUFBSTtvQkFDUCxPQUFPLE9BQU8sQ0FBQztZQUNuQixDQUFDO1lBQ0QsTUFBTTtRQUNSLENBQUM7UUFDRCxLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNaLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxJQUFJLDhCQUFrQixDQUFDLDZCQUE2QixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN6RixDQUFDO0FBRUQsS0FBSyxVQUFVLHdCQUF3QjtJQUNyQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0s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
@@ -23,10 +23,11 @@ const defaultRewrapCacheOptions = {
23
23
  maxAge: 300000,
24
24
  pollInterval: 500,
25
25
  };
26
- // Cache for headers of nanotdf collections.
27
- // This allows the SDK to quickly open multiple entries of the same collection.
28
- // It has a demon that removes all keys that have not been accessed in the last 5 minutes.
29
- // To cancel the demon, and clear the cache, call `close()`.
26
+ /**
27
+ * Cache for headers of nanotdf collections, to quickly open multiple entries of the same collection.
28
+ * It has a demon that removes all keys that have not been accessed in the last 5 minutes.
29
+ * To cancel the demon, and clear the cache, call `close()`.
30
+ * */
30
31
  class RewrapCache {
31
32
  constructor(opts) {
32
33
  const { bypass, maxAge, pollInterval } = { ...defaultRewrapCacheOptions, ...opts };
@@ -58,12 +59,14 @@ class RewrapCache {
58
59
  }
59
60
  return undefined;
60
61
  }
62
+ /** Set a key in the cache. */
61
63
  set(key, value) {
62
64
  if (!this.cache) {
63
65
  return;
64
66
  }
65
67
  this.cache.set(key, { lastAccessTime: Date.now(), value });
66
68
  }
69
+ /** Close the cache and release any resources. */
67
70
  close() {
68
71
  if (this.closer !== undefined) {
69
72
  clearInterval(this.closer);
@@ -73,7 +76,38 @@ class RewrapCache {
73
76
  }
74
77
  }
75
78
  exports.RewrapCache = RewrapCache;
76
- // SDK for dealing with OpenTDF data and policy services.
79
+ /**
80
+ * The main OpenTDF class that provides methods for creating and reading TDF files.
81
+ * It supports both NanoTDF and ZTDF formats.
82
+ * It can be used to create new TDF files and read existing ones.
83
+ * This class is the entry point for using the OpenTDF SDK.
84
+ * It requires an authentication provider to be passed in the constructor.
85
+ * It also requires a platform URL to be set, which is used to fetch key access servers and policies.
86
+ * @example
87
+ * ```
88
+ * import { type Chunker, OpenTDF } from '@opentdf/sdk';
89
+ *
90
+ * const oidcCredentials: RefreshTokenCredentials = {
91
+ * clientId: keycloakClientId,
92
+ * exchange: 'refresh',
93
+ * refreshToken: refreshToken,
94
+ * oidcOrigin: keycloakUrl,
95
+ * };
96
+ * const authProvider = await AuthProviders.refreshAuthProvider(oidcCredentials);
97
+ *
98
+ * const client = new OpenTDF({
99
+ * authProvider,
100
+ * platformUrl: 'https://platform.example.com',
101
+ * });
102
+ *
103
+ * const cipherText = await client.createZTDF({
104
+ * source: { type: 'stream', location: source },
105
+ * autoconfigure: false,
106
+ * });
107
+ *
108
+ * const clearText = await client.read({ type: 'stream', location: cipherText });
109
+ * ```
110
+ */
77
111
  class OpenTDF {
78
112
  constructor({ authProvider, dpopKeys, defaultCreateOptions, defaultReadOptions, disableDPoP, policyEndpoint, rewrapCacheOptions, platformUrl, }) {
79
113
  this.authProvider = authProvider;
@@ -92,6 +126,7 @@ class OpenTDF {
92
126
  authProvider,
93
127
  dpopKeys,
94
128
  kasEndpoint: this.platformUrl || 'https://disallow.all.invalid',
129
+ platformUrl,
95
130
  policyEndpoint,
96
131
  });
97
132
  this.dpopKeys =
@@ -103,6 +138,7 @@ class OpenTDF {
103
138
  publicExponent: new Uint8Array([0x01, 0x00, 0x01]),
104
139
  }, true, ['sign', 'verify']);
105
140
  }
141
+ /** Creates a new NanoTDF stream. */
106
142
  async createNanoTDF(opts) {
107
143
  opts = {
108
144
  ...this.defaultCreateOptions,
@@ -121,12 +157,12 @@ class OpenTDF {
121
157
  }
122
158
  /**
123
159
  * Creates a new collection object, which can be used to encrypt a series of data with the same policy.
124
- * @returns
125
160
  */
126
161
  async createNanoTDFCollection(opts) {
127
162
  opts = { ...this.defaultCreateOptions, ...opts };
128
163
  return new Collection(this.authProvider, opts);
129
164
  }
165
+ /** Creates a new ZTDF stream. */
130
166
  async createZTDF(opts) {
131
167
  opts = { ...this.defaultCreateOptions, ...opts };
132
168
  const oldStream = await this.tdf3Client.encrypt({
@@ -149,24 +185,23 @@ class OpenTDF {
149
185
  stream.metadata = Promise.resolve(oldStream.metadata);
150
186
  return stream;
151
187
  }
152
- /**
153
- * Opens a TDF file for inspection and decryption.
154
- * @param opts the file to open, and any appropriate configuration options
155
- * @returns
156
- */
188
+ /** Opens a TDF file for inspection and decryption. */
157
189
  open(opts) {
158
190
  opts = { ...this.defaultReadOptions, ...opts };
159
191
  return new UnknownTypeReader(this, opts, this.rewrapCache);
160
192
  }
193
+ /** Decrypts a TDF file. */
161
194
  async read(opts) {
162
195
  const reader = this.open(opts);
163
196
  return reader.decrypt();
164
197
  }
198
+ /** Closes the OpenTDF instance and releases any resources. */
165
199
  close() {
166
200
  this.rewrapCache.close();
167
201
  }
168
202
  }
169
203
  exports.OpenTDF = OpenTDF;
204
+ /** A TDF reader that can automatically detect the TDF type. */
170
205
  class UnknownTypeReader {
171
206
  constructor(outer, opts, rewrapCache) {
172
207
  this.outer = outer;
@@ -175,6 +210,7 @@ class UnknownTypeReader {
175
210
  this.state = 'init';
176
211
  this.delegate = this.resolveType();
177
212
  }
213
+ /** Resolves the TDF type based on the file prefix. */
178
214
  async resolveType() {
179
215
  if (this.state === 'done') {
180
216
  throw new errors_js_1.ConfigurationError('reader is closed');
@@ -196,18 +232,22 @@ class UnknownTypeReader {
196
232
  this.state = 'done';
197
233
  throw new errors_js_1.InvalidFileError(`unsupported format; prefix not recognized ${prefix}`);
198
234
  }
235
+ /** Decrypts the TDF file */
199
236
  async decrypt() {
200
237
  const actual = await this.delegate;
201
238
  return actual.decrypt();
202
239
  }
240
+ /** Returns the attributes of the TDF file */
203
241
  async attributes() {
204
242
  const actual = await this.delegate;
205
243
  return actual.attributes();
206
244
  }
245
+ /** Returns the manifest of the TDF file */
207
246
  async manifest() {
208
247
  const actual = await this.delegate;
209
248
  return actual.manifest();
210
249
  }
250
+ /** Closes the TDF reader */
211
251
  async close() {
212
252
  if (this.state === 'done') {
213
253
  return;
@@ -223,7 +263,12 @@ class UnknownTypeReader {
223
263
  this.state = 'done';
224
264
  });
225
265
  }
266
+ async obligations() {
267
+ const actual = await this.delegate;
268
+ return actual.obligations();
269
+ }
226
270
  }
271
+ /** A TDF reader for NanoTDF files. */
227
272
  class NanoTDFReader {
228
273
  constructor(outer, opts, chunker, rewrapCache) {
229
274
  this.outer = outer;
@@ -247,6 +292,10 @@ class NanoTDFReader {
247
292
  }
248
293
  });
249
294
  }
295
+ /**
296
+ * Decrypts the NanoTDF file and returns a decorated stream.
297
+ * Sets required obligations on the reader when retrieved from KAS rewrap response.
298
+ */
250
299
  async decrypt() {
251
300
  const nanotdf = await this.container;
252
301
  const cachedDEK = this.rewrapCache.get(nanotdf.header.ephemeralPublicKey);
@@ -259,6 +308,7 @@ class NanoTDFReader {
259
308
  const kasEndpoint = this.opts.allowedKASEndpoints?.[0] || platformUrl || 'https://disallow.all.invalid';
260
309
  const nc = new Client_js_1.default({
261
310
  allowedKases: this.opts.allowedKASEndpoints,
311
+ fulfillableObligationFQNs: this.opts.fulfillableObligationFQNs,
262
312
  authProvider: this.outer.authProvider,
263
313
  ignoreAllowList: this.opts.ignoreAllowlist,
264
314
  dpopEnabled: this.outer.dpopEnabled,
@@ -269,11 +319,12 @@ class NanoTDFReader {
269
319
  // TODO: The version number should be fetched from the API
270
320
  const version = '0.0.1';
271
321
  // Rewrap key on every request
272
- const dek = await nc.rewrapKey(nanotdf.header.toBuffer(), nanotdf.header.getKasRewrapUrl(), nanotdf.header.magicNumberVersion, version);
322
+ const { unwrappedKey: dek, requiredObligations } = await nc.rewrapKey(nanotdf.header.toBuffer(), nanotdf.header.getKasRewrapUrl(), nanotdf.header.magicNumberVersion, version);
273
323
  if (!dek) {
274
324
  // These should have thrown already.
275
325
  throw new Error('internal: key rewrap failure');
276
326
  }
327
+ this.requiredObligations = { fqns: requiredObligations };
277
328
  this.rewrapCache.set(nanotdf.header.ephemeralPublicKey, dek);
278
329
  const r = await streamify((0, decrypt_js_1.default)(dek, nanotdf));
279
330
  // TODO figure out how to attach policy and metadata to the stream
@@ -281,9 +332,11 @@ class NanoTDFReader {
281
332
  return r;
282
333
  }
283
334
  async close() { }
335
+ /** Returns blank manifest. NanoTDF has no manifest. */
284
336
  async manifest() {
285
337
  return {};
286
338
  }
339
+ /** Returns the attributes of the NanoTDF file. */
287
340
  async attributes() {
288
341
  const nanotdf = await this.container;
289
342
  if (!nanotdf.header.policy?.content) {
@@ -296,7 +349,19 @@ class NanoTDFReader {
296
349
  const policy = JSON.parse(policyString);
297
350
  return policy?.body?.dataAttributes.map((a) => a.attribute) || [];
298
351
  }
352
+ /**
353
+ * Returns obligations populated from the decrypt flow.
354
+ * If a decrypt has not occurred, attempts one to retrieve obligations.
355
+ */
356
+ async obligations() {
357
+ if (this.requiredObligations) {
358
+ return this.requiredObligations;
359
+ }
360
+ await this.decrypt();
361
+ return this.requiredObligations ?? { fqns: [] };
362
+ }
299
363
  }
364
+ /** A reader for TDF files. */
300
365
  class ZTDFReader {
301
366
  constructor(client, opts, source) {
302
367
  this.client = client;
@@ -304,6 +369,11 @@ class ZTDFReader {
304
369
  this.source = source;
305
370
  this.overview = (0, tdf_js_1.loadTDFStream)(source);
306
371
  }
372
+ /**
373
+ * Decrypts the TDF file and returns a decorated stream.
374
+ * The stream will have a manifest and metadata attached if available.
375
+ * Sets required obligations on the reader when retrieved from KAS rewrap response.
376
+ */
307
377
  async decrypt() {
308
378
  const { assertionVerificationKeys, noVerify: noVerifyAssertions, wrappingKeyAlgorithm, } = this.opts;
309
379
  if (!this.opts.ignoreAllowlist && !this.opts.allowedKASEndpoints && !this.opts.platformUrl) {
@@ -335,7 +405,11 @@ class ZTDFReader {
335
405
  assertionVerificationKeys,
336
406
  noVerifyAssertions,
337
407
  wrappingKeyAlgorithm,
408
+ fulfillableObligations: this.opts.fulfillableObligationFQNs || [],
338
409
  }, overview);
410
+ this.requiredObligations = {
411
+ fqns: oldStream.obligations(),
412
+ };
339
413
  const stream = oldStream.stream;
340
414
  stream.manifest = Promise.resolve(overview.manifest);
341
415
  stream.metadata = Promise.resolve(oldStream.metadata);
@@ -344,16 +418,29 @@ class ZTDFReader {
344
418
  async close() {
345
419
  // TODO figure out how to close a chunker, if we want to.
346
420
  }
421
+ /** Returns the manifest of the TDF file. */
347
422
  async manifest() {
348
423
  const overview = await this.overview;
349
424
  return overview.manifest;
350
425
  }
426
+ /** Returns the attributes of the TDF file. */
351
427
  async attributes() {
352
428
  const manifest = await this.manifest();
353
429
  const policyJSON = index_js_3.base64.decode(manifest.encryptionInformation.policy);
354
430
  const policy = JSON.parse(policyJSON);
355
431
  return policy?.body?.dataAttributes.map((a) => a.attribute) || [];
356
432
  }
433
+ /**
434
+ * Returns obligations populated from the decrypt flow.
435
+ * If a decrypt has not occurred, attempts one to retrieve obligations.
436
+ */
437
+ async obligations() {
438
+ if (this.requiredObligations) {
439
+ return this.requiredObligations;
440
+ }
441
+ await this.decrypt();
442
+ return this.requiredObligations ?? { fqns: [] };
443
+ }
357
444
  }
358
445
  async function streamify(ab) {
359
446
  const stream = new ReadableStream({
@@ -392,7 +479,9 @@ class Collection {
392
479
  maxKeyIterations: opts.maxKeyIterations,
393
480
  platformUrl: opts.platformUrl,
394
481
  });
482
+ this.client.dataAttributes = opts.attributes || [];
395
483
  }
484
+ /** Encrypts a source into a NanoTDF stream. */
396
485
  async encrypt(source) {
397
486
  if (!this.client) {
398
487
  throw new errors_js_1.ConfigurationError('Collection is closed');
@@ -409,8 +498,9 @@ class Collection {
409
498
  // stream.header = this.client.header;
410
499
  return stream;
411
500
  }
501
+ /** Releases client resources. */
412
502
  async close() {
413
503
  delete this.client;
414
504
  }
415
505
  }
416
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnRkZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vcGVudGRmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDJDQUFtRTtBQUNuRSxxREFBbUc7QUFDbkcsd0RBQW1FO0FBQTFELHNHQUFBLE1BQU0sT0FBYztBQUM3QixzRUFBMkM7QUFDM0Msc0VBQWtEO0FBQ2xELG9FQUF5QztBQUV6QywrQ0FBaUY7QUFDakYsMERBQW1FO0FBTW5FLDJDQUtxQjtBQTZCbkIscUdBOUJBLGdDQUFvQixPQThCQTtBQXBCdEIsK0NBSzRCO0FBQzVCLG1EQUE4QztBQUM5Qyx5RkFBMEQ7QUErSzFELE1BQU0seUJBQXlCLEdBQWlDO0lBQzlELE1BQU0sRUFBRSxLQUFLO0lBQ2IsTUFBTSxFQUFFLE1BQU07SUFDZCxZQUFZLEVBQUUsR0FBRztDQUNsQixDQUFDO0FBRUYsNENBQTRDO0FBQzVDLCtFQUErRTtBQUMvRSwwRkFBMEY7QUFDMUYsNERBQTREO0FBQzVELE1BQWEsV0FBVztJQUd0QixZQUFZLElBQXlCO1FBQ25DLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsR0FBRyx5QkFBeUIsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ25GLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNQLE9BQU87WUFDVCxDQUFDO1lBQ0QsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFF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
506
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnRkZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vcGVudGRmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDJDQUFtRTtBQUNuRSxxREFBbUc7QUFDbkcsd0RBQW1FO0FBQTFELHNHQUFBLE1BQU0sT0FBYztBQUM3QixzRUFBMkM7QUFDM0Msc0VBQWtEO0FBQ2xELG9FQUF5QztBQUV6QywrQ0FBaUY7QUFDakYsMERBQW1FO0FBTW5FLDJDQUtxQjtBQTZCbkIscUdBOUJBLGdDQUFvQixPQThCQTtBQXBCdEIsK0NBSzRCO0FBQzVCLG1EQUE4QztBQUM5Qyx5RkFBMEQ7QUFtTTFELE1BQU0seUJBQXlCLEdBQWlDO0lBQzlELE1BQU0sRUFBRSxLQUFLO0lBQ2IsTUFBTSxFQUFFLE1BQU07SUFDZCxZQUFZLEVBQUUsR0FBRztDQUNsQixDQUFDO0FBRUY7Ozs7S0FJSztBQUNMLE1BQWEsV0FBVztJQUd0QixZQUFZLElBQXlCO1FBQ25DLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsR0FBRyx5QkFBeUIsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ25GLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNQLE9BQU87WUFDVCxDQUFDO1lBQ0QsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFB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
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ // @generated by protoc-gen-es v2.2.5 with parameter "target=ts,import_extension=.js"
3
+ // @generated from file authorization/v2/authorization.proto (package authorization.v2, syntax proto3)
4
+ /* eslint-disable */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AuthorizationService = exports.DecisionSchema = exports.Decision = exports.GetEntitlementsResponseSchema = exports.GetEntitlementsRequestSchema = exports.GetDecisionBulkResponseSchema = exports.GetDecisionBulkRequestSchema = exports.GetDecisionMultiResourceResponseSchema = exports.GetDecisionMultiResourceRequestSchema = exports.GetDecisionResponseSchema = exports.GetDecisionRequestSchema = exports.ResourceDecisionSchema = exports.Resource_AttributeValuesSchema = exports.ResourceSchema = exports.EntityEntitlements_ActionsListSchema = exports.EntityEntitlementsSchema = exports.EntityIdentifierSchema = exports.file_authorization_v2_authorization = void 0;
7
+ const codegenv1_1 = require("@bufbuild/protobuf/codegenv1");
8
+ const validate_pb_js_1 = require("../../buf/validate/validate_pb.js");
9
+ const entity_pb_js_1 = require("../../entity/entity_pb.js");
10
+ const wkt_1 = require("@bufbuild/protobuf/wkt");
11
+ const objects_pb_js_1 = require("../../policy/objects_pb.js");
12
+ /**
13
+ * Describes the file authorization/v2/authorization.proto.
14
+ */
15
+ exports.file_authorization_v2_authorization = (0, codegenv1_1.fileDesc)("CiRhdXRob3JpemF0aW9uL3YyL2F1dGhvcml6YXRpb24ucHJvdG8SEGF1dGhvcml6YXRpb24udjIixQQKEEVudGl0eUlkZW50aWZpZXIS1AEKDGVudGl0eV9jaGFpbhgBIAEoCzITLmVudGl0eS5FbnRpdHlDaGFpbkKmAbpIogG6AZ4BChVlbnRpdHlfY2hhaW5fcmVxdWlyZWQSN2VudGl0aWVzIG11c3QgYmUgcHJvdmlkZWQgYW5kIGJldHdlZW4gMSBhbmQgMTAgaW4gY291bnQaTGhhcyh0aGlzLmVudGl0aWVzKSAmJiB0aGlzLmVudGl0aWVzLnNpemUoKSA+IDAgJiYgdGhpcy5lbnRpdGllcy5zaXplKCkgPD0gMTBIABIzCh1yZWdpc3RlcmVkX3Jlc291cmNlX3ZhbHVlX2ZxbhgCIAEoCUIKukgHcgUQAYgBAUgAEnQKBXRva2VuGAMgASgLMg0uZW50aXR5LlRva2VuQlS6SFG6AU4KDnRva2VuX3JlcXVpcmVkEhZ0b2tlbiBtdXN0IGJlIHByb3ZpZGVkGiRoYXModGhpcy5qd3QpICYmIHRoaXMuand0LnNpemUoKSA+IDBIABKZAQoSd2l0aF9yZXF1ZXN0X3Rva2VuGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZUJfukhcugFZCh93aXRoX3JlcXVlc3RfdG9rZW5fbXVzdF9iZV90cnVlEih3aXRoX3JlcXVlc3RfdG9rZW4gbXVzdCBiZSB0cnVlIHdoZW4gc2V0Ggx0aGlzID09IHRydWVIAEITCgppZGVudGlmaWVyEgW6SAIIASLAAgoSRW50aXR5RW50aXRsZW1lbnRzEhQKDGVwaGVtZXJhbF9pZBgBIAEoCRJuCh9hY3Rpb25zX3Blcl9hdHRyaWJ1dGVfdmFsdWVfZnFuGAIgAygLMkUuYXV0aG9yaXphdGlvbi52Mi5FbnRpdHlFbnRpdGxlbWVudHMuQWN0aW9uc1BlckF0dHJpYnV0ZVZhbHVlRnFuRW50cnkaLgoLQWN0aW9uc0xpc3QSHwoHYWN0aW9ucxgBIAMoCzIOLnBvbGljeS5BY3Rpb24adAogQWN0aW9uc1BlckF0dHJpYnV0ZVZhbHVlRnFuRW50cnkSCwoDa2V5GAEgASgJEj8KBXZhbHVlGAIgASgLMjAuYXV0aG9yaXphdGlvbi52Mi5FbnRpdHlFbnRpdGxlbWVudHMuQWN0aW9uc0xpc3Q6AjgBIqQDCghSZXNvdXJjZRIUCgxlcGhlbWVyYWxfaWQYASABKAkSnwIKEGF0dHJpYnV0ZV92YWx1ZXMYAiABKAsyKi5hdXRob3JpemF0aW9uLnYyLlJlc291cmNlLkF0dHJpYnV0ZVZhbHVlc0LWAbpI0gG6Ac4BChlhdHRyaWJ1dGVfdmFsdWVzX3JlcXVpcmVkElxpZiBwcm92aWRlZCwgcmVzb3VyY2UuYXR0cmlidXRlX3ZhbHVlcyBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjAgaW4gY291bnQgd2l0aCBhbGwgdmFsaWQgRlFOcxpTdGhpcy5mcW5zLnNpemUoKSA+IDAgJiYgdGhpcy5mcW5zLnNpemUoKSA8PSAyMCAmJiB0aGlzLmZxbnMuYWxsKGl0ZW0sIGl0ZW0uaXNVcmkoKSlIABIzCh1yZWdpc3RlcmVkX3Jlc291cmNlX3ZhbHVlX2ZxbhgDIAEoCUIKukgHcgUQAYgBAUgAGh8KD0F0dHJpYnV0ZVZhbHVlcxIMCgRmcW5zGAEgAygJQgoKCHJlc291cmNlIn0KEFJlc291cmNlRGVjaXNpb24SHQoVZXBoZW1lcmFsX3Jlc291cmNlX2lkGAEgASgJEiwKCGRlY2lzaW9uGAIgASgOMhouYXV0aG9yaXphdGlvbi52Mi5EZWNpc2lvbhIcChRyZXF1aXJlZF9vYmxpZ2F0aW9ucxgDIAMoCSKXBAoSR2V0RGVjaXNpb25SZXF1ZXN0EkUKEWVudGl0eV9pZGVudGlmaWVyGAEgASgLMiIuYXV0aG9yaXphdGlvbi52Mi5FbnRpdHlJZGVudGlmaWVyQga6SAPIAQESJgoGYWN0aW9uGAIgASgLMg4ucG9saWN5LkFjdGlvbkIGukgDyAEBEjQKCHJlc291cmNlGAMgASgLMhouYXV0aG9yaXphdGlvbi52Mi5SZXNvdXJjZUIGukgDyAEBEvQBChtmdWxmaWxsYWJsZV9vYmxpZ2F0aW9uX2ZxbnMYBCADKAlCzgG6SMoBugHGAQobb2JsaWdhdGlvbl92YWx1ZV9mcW5zX3ZhbGlkEl5pZiBwcm92aWRlZCwgZnVsZmlsbGFibGVfb2JsaWdhdGlvbl9mcW5zIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA1MCBpbiBjb3VudCB3aXRoIGFsbCB2YWxpZCBGUU5zGkd0aGlzLnNpemUoKSA9PSAwIHx8ICh0aGlzLnNpemUoKSA8PSA1MCAmJiB0aGlzLmFsbChpdGVtLCBpdGVtLmlzVXJpKCkpKTplukhiGmAKKWdldF9kZWNpc2lvbl9yZXF1ZXN0LmFjdGlvbl9uYW1lX3JlcXVpcmVkEhxhY3Rpb24ubmFtZSBtdXN0IGJlIHByb3ZpZGVkGhVoYXModGhpcy5hY3Rpb24ubmFtZSkiSwoTR2V0RGVjaXNpb25SZXNwb25zZRI0CghkZWNpc2lvbhgBIAEoCzIiLmF1dGhvcml6YXRpb24udjIuUmVzb3VyY2VEZWNpc2lvbiKwBAofR2V0RGVjaXNpb25NdWx0aVJlc291cmNlUmVxdWVzdBJFChFlbnRpdHlfaWRlbnRpZmllchgBIAEoCzIiLmF1dGhvcml6YXRpb24udjIuRW50aXR5SWRlbnRpZmllckIGukgDyAEBEiYKBmFjdGlvbhgCIAEoCzIOLnBvbGljeS5BY3Rpb25CBrpIA8gBARI6CglyZXNvdXJjZXMYAyADKAsyGi5hdXRob3JpemF0aW9uLnYyLlJlc291cmNlQgu6SAiSAQUIARDoBxL0AQobZnVsZmlsbGFibGVfb2JsaWdhdGlvbl9mcW5zGAQgAygJQs4BukjKAboBxgEKG29ibGlnYXRpb25fdmFsdWVfZnFuc192YWxpZBJeaWYgcHJvdmlkZWQsIGZ1bGZpbGxhYmxlX29ibGlnYXRpb25fZnFucyBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNTAgaW4gY291bnQgd2l0aCBhbGwgdmFsaWQgRlFOcxpHdGhpcy5zaXplKCkgPT0gMCB8fCAodGhpcy5zaXplKCkgPD0gNTAgJiYgdGhpcy5hbGwoaXRlbSwgaXRlbS5pc1VyaSgpKSk6a7pIaBpmCi9nZXRfZGVjaXNpb25fbXVsdGlfcmVxdWVzdC5hY3Rpb25fbmFtZV9yZXF1aXJlZBIcYWN0aW9uLm5hbWUgbXVzdCBiZSBwcm92aWRlZBoVaGFzKHRoaXMuYWN0aW9uLm5hbWUpIpUBCiBHZXREZWNpc2lvbk11bHRpUmVzb3VyY2VSZXNwb25zZRIxCg1hbGxfcGVybWl0dGVkGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRI+ChJyZXNvdXJjZV9kZWNpc2lvbnMYAiADKAsyIi5hdXRob3JpemF0aW9uLnYyLlJlc291cmNlRGVjaXNpb24icwoWR2V0RGVjaXNpb25CdWxrUmVxdWVzdBJZChFkZWNpc2lvbl9yZXF1ZXN0cxgBIAMoCzIxLmF1dGhvcml6YXRpb24udjIuR2V0RGVjaXNpb25NdWx0aVJlc291cmNlUmVxdWVzdEILukgIkgEFCAEQyAEiaQoXR2V0RGVjaXNpb25CdWxrUmVzcG9uc2USTgoSZGVjaXNpb25fcmVzcG9uc2VzGAEgAygLMjIuYXV0aG9yaXphdGlvbi52Mi5HZXREZWNpc2lvbk11bHRpUmVzb3VyY2VSZXNwb25zZSKrAQoWR2V0RW50aXRsZW1lbnRzUmVxdWVzdBJFChFlbnRpdHlfaWRlbnRpZmllchgBIAEoCzIiLmF1dGhvcml6YXRpb24udjIuRW50aXR5SWRlbnRpZmllckIGukgDyAEBEikKHHdpdGhfY29tcHJlaGVuc2l2ZV9oaWVyYXJjaHkYAiABKAhIAIgBAUIfCh1fd2l0aF9jb21wcmVoZW5zaXZlX2hpZXJhcmNoeSJVChdHZXRFbnRpdGxlbWVudHNSZXNwb25zZRI6CgxlbnRpdGxlbWVudHMYASADKAsyJC5hdXRob3JpemF0aW9uLnYyLkVudGl0eUVudGl0bGVtZW50cypMCghEZWNpc2lvbhIYChRERUNJU0lPTl9VTlNQRUNJRklFRBAAEhEKDURFQ0lTSU9OX0RFTlkQARITCg9ERUNJU0lPTl9QRVJNSVQQAjLOAwoUQXV0aG9yaXphdGlvblNlcnZpY2USXAoLR2V0RGVjaXNpb24SJC5hdXRob3JpemF0aW9uLnYyLkdldERlY2lzaW9uUmVxdWVzdBolLmF1dGhvcml6YXRpb24udjIuR2V0RGVjaXNpb25SZXNwb25zZSIAEoMBChhHZXREZWNpc2lvbk11bHRpUmVzb3VyY2USMS5hdXRob3JpemF0aW9uLnYyLkdldERlY2lzaW9uTXVsdGlSZXNvdXJjZVJlcXVlc3QaMi5hdXRob3JpemF0aW9uLnYyLkdldERlY2lzaW9uTXVsdGlSZXNvdXJjZVJlc3BvbnNlIgASaAoPR2V0RGVjaXNpb25CdWxrEiguYXV0aG9yaXphdGlvbi52Mi5HZXREZWNpc2lvbkJ1bGtSZXF1ZXN0GikuYXV0aG9yaXphdGlvbi52Mi5HZXREZWNpc2lvbkJ1bGtSZXNwb25zZSIAEmgKD0dldEVudGl0bGVtZW50cxIoLmF1dGhvcml6YXRpb24udjIuR2V0RW50aXRsZW1lbnRzUmVxdWVzdBopLmF1dGhvcml6YXRpb24udjIuR2V0RW50aXRsZW1lbnRzUmVzcG9uc2UiAGIGcHJvdG8z", [validate_pb_js_1.file_buf_validate_validate, entity_pb_js_1.file_entity_entity, wkt_1.file_google_protobuf_wrappers, objects_pb_js_1.file_policy_objects]);
16
+ /**
17
+ * Describes the message authorization.v2.EntityIdentifier.
18
+ * Use `create(EntityIdentifierSchema)` to create a new message.
19
+ */
20
+ exports.EntityIdentifierSchema = (0, codegenv1_1.messageDesc)(exports.file_authorization_v2_authorization, 0);
21
+ /**
22
+ * Describes the message authorization.v2.EntityEntitlements.
23
+ * Use `create(EntityEntitlementsSchema)` to create a new message.
24
+ */
25
+ exports.EntityEntitlementsSchema = (0, codegenv1_1.messageDesc)(exports.file_authorization_v2_authorization, 1);
26
+ /**
27
+ * Describes the message authorization.v2.EntityEntitlements.ActionsList.
28
+ * Use `create(EntityEntitlements_ActionsListSchema)` to create a new message.
29
+ */
30
+ exports.EntityEntitlements_ActionsListSchema = (0, codegenv1_1.messageDesc)(exports.file_authorization_v2_authorization, 1, 0);
31
+ /**
32
+ * Describes the message authorization.v2.Resource.
33
+ * Use `create(ResourceSchema)` to create a new message.
34
+ */
35
+ exports.ResourceSchema = (0, codegenv1_1.messageDesc)(exports.file_authorization_v2_authorization, 2);
36
+ /**
37
+ * Describes the message authorization.v2.Resource.AttributeValues.
38
+ * Use `create(Resource_AttributeValuesSchema)` to create a new message.
39
+ */
40
+ exports.Resource_AttributeValuesSchema = (0, codegenv1_1.messageDesc)(exports.file_authorization_v2_authorization, 2, 0);
41
+ /**
42
+ * Describes the message authorization.v2.ResourceDecision.
43
+ * Use `create(ResourceDecisionSchema)` to create a new message.
44
+ */
45
+ exports.ResourceDecisionSchema = (0, codegenv1_1.messageDesc)(exports.file_authorization_v2_authorization, 3);
46
+ /**
47
+ * Describes the message authorization.v2.GetDecisionRequest.
48
+ * Use `create(GetDecisionRequestSchema)` to create a new message.
49
+ */
50
+ exports.GetDecisionRequestSchema = (0, codegenv1_1.messageDesc)(exports.file_authorization_v2_authorization, 4);
51
+ /**
52
+ * Describes the message authorization.v2.GetDecisionResponse.
53
+ * Use `create(GetDecisionResponseSchema)` to create a new message.
54
+ */
55
+ exports.GetDecisionResponseSchema = (0, codegenv1_1.messageDesc)(exports.file_authorization_v2_authorization, 5);
56
+ /**
57
+ * Describes the message authorization.v2.GetDecisionMultiResourceRequest.
58
+ * Use `create(GetDecisionMultiResourceRequestSchema)` to create a new message.
59
+ */
60
+ exports.GetDecisionMultiResourceRequestSchema = (0, codegenv1_1.messageDesc)(exports.file_authorization_v2_authorization, 6);
61
+ /**
62
+ * Describes the message authorization.v2.GetDecisionMultiResourceResponse.
63
+ * Use `create(GetDecisionMultiResourceResponseSchema)` to create a new message.
64
+ */
65
+ exports.GetDecisionMultiResourceResponseSchema = (0, codegenv1_1.messageDesc)(exports.file_authorization_v2_authorization, 7);
66
+ /**
67
+ * Describes the message authorization.v2.GetDecisionBulkRequest.
68
+ * Use `create(GetDecisionBulkRequestSchema)` to create a new message.
69
+ */
70
+ exports.GetDecisionBulkRequestSchema = (0, codegenv1_1.messageDesc)(exports.file_authorization_v2_authorization, 8);
71
+ /**
72
+ * Describes the message authorization.v2.GetDecisionBulkResponse.
73
+ * Use `create(GetDecisionBulkResponseSchema)` to create a new message.
74
+ */
75
+ exports.GetDecisionBulkResponseSchema = (0, codegenv1_1.messageDesc)(exports.file_authorization_v2_authorization, 9);
76
+ /**
77
+ * Describes the message authorization.v2.GetEntitlementsRequest.
78
+ * Use `create(GetEntitlementsRequestSchema)` to create a new message.
79
+ */
80
+ exports.GetEntitlementsRequestSchema = (0, codegenv1_1.messageDesc)(exports.file_authorization_v2_authorization, 10);
81
+ /**
82
+ * Describes the message authorization.v2.GetEntitlementsResponse.
83
+ * Use `create(GetEntitlementsResponseSchema)` to create a new message.
84
+ */
85
+ exports.GetEntitlementsResponseSchema = (0, codegenv1_1.messageDesc)(exports.file_authorization_v2_authorization, 11);
86
+ /**
87
+ * @generated from enum authorization.v2.Decision
88
+ */
89
+ var Decision;
90
+ (function (Decision) {
91
+ /**
92
+ * @generated from enum value: DECISION_UNSPECIFIED = 0;
93
+ */
94
+ Decision[Decision["UNSPECIFIED"] = 0] = "UNSPECIFIED";
95
+ /**
96
+ * @generated from enum value: DECISION_DENY = 1;
97
+ */
98
+ Decision[Decision["DENY"] = 1] = "DENY";
99
+ /**
100
+ * @generated from enum value: DECISION_PERMIT = 2;
101
+ */
102
+ Decision[Decision["PERMIT"] = 2] = "PERMIT";
103
+ })(Decision || (exports.Decision = Decision = {}));
104
+ /**
105
+ * Describes the enum authorization.v2.Decision.
106
+ */
107
+ exports.DecisionSchema = (0, codegenv1_1.enumDesc)(exports.file_authorization_v2_authorization, 0);
108
+ /**
109
+ * @generated from service authorization.v2.AuthorizationService
110
+ */
111
+ exports.AuthorizationService = (0, codegenv1_1.serviceDesc)(exports.file_authorization_v2_authorization, 0);
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbl9wYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9hdXRob3JpemF0aW9uL3YyL2F1dGhvcml6YXRpb25fcGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFGQUFxRjtBQUNyRixzR0FBc0c7QUFDdEcsb0JBQW9COzs7QUFHcEIsNERBQTRGO0FBQzVGLHNFQUErRTtBQUUvRSw0REFBK0Q7QUFFL0QsZ0RBQXVFO0FBRXZFLDhEQUFpRTtBQUdqRTs7R0FFRztBQUNVLFFBQUEsbUNBQW1DLEdBQzlDLElBQUEsb0JBQVEsRUFBQyxzaktBQXNqSyxFQUFFLENBQUMsMkNBQTBCLEVBQUUsaUNBQWtCLEVBQUUsbUNBQTZCLEVBQUUsbUNBQW1CLENBQUMsQ0FBQyxDQUFDO0FBaUR6cUs7OztHQUdHO0FBQ1UsUUFBQSxzQkFBc0IsR0FDakMsSUFBQSx1QkFBVyxFQUFDLDJDQUFtQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBcUJ0RDs7O0dBR0c7QUFDVSxRQUFBLHdCQUF3QixHQUNuQyxJQUFBLHVCQUFXLEVBQUMsMkNBQW1DLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFZdEQ7OztHQUdHO0FBQ1UsUUFBQSxvQ0FBb0MsR0FDL0MsSUFBQSx1QkFBVyxFQUFDLDJDQUFtQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXFDekQ7OztHQUdHO0FBQ1UsUUFBQSxjQUFjLEdBQ3pCLElBQUEsdUJBQVcsRUFBQywyQ0FBbUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQVl0RDs7O0dBR0c7QUFDVSxRQUFBLDhCQUE4QixHQUN6QyxJQUFBLHVCQUFXLEVBQUMsMkNBQW1DLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBNkJ6RDs7O0dBR0c7QUFDVSxRQUFBLHNCQUFzQixHQUNqQyxJQUFBLHVCQUFXLEVBQUMsMkNBQW1DLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUF5Q3REOzs7R0FHRztBQUNVLFFBQUEsd0JBQXdCLEdBQ25DLElBQUEsdUJBQVcsRUFBQywyQ0FBbUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQWN0RDs7O0dBR0c7QUFDVSxRQUFBLHlCQUF5QixHQUNwQyxJQUFBLHVCQUFXLEVBQUMsMkNBQW1DLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUEyQ3REOzs7R0FHRztBQUNVLFFBQUEscUNBQXFDLEdBQ2hELElBQUEsdUJBQVcsRUFBQywyQ0FBbUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXFCdEQ7OztHQUdHO0FBQ1UsUUFBQSxzQ0FBc0MsR0FDakQsSUFBQSx1QkFBVyxFQUFDLDJDQUFtQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBaUJ0RDs7O0dBR0c7QUFDVSxRQUFBLDRCQUE0QixHQUN2QyxJQUFBLHVCQUFXLEVBQUMsMkNBQW1DLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFZdEQ7OztHQUdHO0FBQ1UsUUFBQSw2QkFBNkIsR0FDeEMsSUFBQSx1QkFBVyxFQUFDLDJDQUFtQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBMkJ0RDs7O0dBR0c7QUFDVSxRQUFBLDRCQUE0QixHQUN2QyxJQUFBLHVCQUFXLEVBQUMsMkNBQW1DLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFZdkQ7OztHQUdHO0FBQ1UsUUFBQSw2QkFBNkIsR0FDeEMsSUFBQSx1QkFBVyxFQUFDLDJDQUFtQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRXZEOztHQUVHO0FBQ0gsSUFBWSxRQWVYO0FBZkQsV0FBWSxRQUFRO0lBQ2xCOztPQUVHO0lBQ0gscURBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsdUNBQVEsQ0FBQTtJQUVSOztPQUVHO0lBQ0gsMkNBQVUsQ0FBQTtBQUNaLENBQUMsRUFmVyxRQUFRLHdCQUFSLFFBQVEsUUFlbkI7QUFFRDs7R0FFRztBQUNVLFFBQUEsY0FBYyxHQUN6QixJQUFBLG9CQUFRLEVBQUMsMkNBQW1DLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFbkQ7O0dBRUc7QUFDVSxRQUFBLG9CQUFvQixHQWtDL0IsSUFBQSx1QkFBVyxFQUFDLDJDQUFtQyxFQUFFLENBQUMsQ0FBQyxDQUFDIn0=