@opentdf/sdk 0.13.0 → 0.14.0-rc.133

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 (71) hide show
  1. package/README.md +60 -10
  2. package/dist/cjs/src/access/access-rpc.js +6 -5
  3. package/dist/cjs/src/access.js +18 -5
  4. package/dist/cjs/src/auth/interceptors.js +186 -0
  5. package/dist/cjs/src/auth/oidc.js +5 -3
  6. package/dist/cjs/src/auth/token-providers.js +247 -0
  7. package/dist/cjs/src/index.js +16 -2
  8. package/dist/cjs/src/opentdf.js +40 -32
  9. package/dist/cjs/src/platform/authorization/entity-identifiers.js +88 -0
  10. package/dist/cjs/src/platform.js +3 -46
  11. package/dist/cjs/src/policy/api.js +9 -5
  12. package/dist/cjs/src/policy/discovery.js +10 -9
  13. package/dist/cjs/src/version.js +1 -1
  14. package/dist/cjs/tdf3/src/client/index.js +35 -17
  15. package/dist/cjs/tdf3/src/tdf.js +8 -7
  16. package/dist/types/src/access/access-rpc.d.ts +3 -3
  17. package/dist/types/src/access/access-rpc.d.ts.map +1 -1
  18. package/dist/types/src/access.d.ts +3 -3
  19. package/dist/types/src/access.d.ts.map +1 -1
  20. package/dist/types/src/auth/interceptors.d.ts +99 -0
  21. package/dist/types/src/auth/interceptors.d.ts.map +1 -0
  22. package/dist/types/src/auth/oidc.d.ts +1 -1
  23. package/dist/types/src/auth/oidc.d.ts.map +1 -1
  24. package/dist/types/src/auth/token-providers.d.ts +100 -0
  25. package/dist/types/src/auth/token-providers.d.ts.map +1 -0
  26. package/dist/types/src/index.d.ts +3 -0
  27. package/dist/types/src/index.d.ts.map +1 -1
  28. package/dist/types/src/opentdf.d.ts +18 -15
  29. package/dist/types/src/opentdf.d.ts.map +1 -1
  30. package/dist/types/src/platform/authorization/entity-identifiers.d.ts +41 -0
  31. package/dist/types/src/platform/authorization/entity-identifiers.d.ts.map +1 -0
  32. package/dist/types/src/platform.d.ts +6 -3
  33. package/dist/types/src/platform.d.ts.map +1 -1
  34. package/dist/types/src/policy/api.d.ts +3 -3
  35. package/dist/types/src/policy/api.d.ts.map +1 -1
  36. package/dist/types/src/policy/discovery.d.ts +5 -5
  37. package/dist/types/src/policy/discovery.d.ts.map +1 -1
  38. package/dist/types/src/version.d.ts +1 -1
  39. package/dist/types/tdf3/src/client/index.d.ts +10 -1
  40. package/dist/types/tdf3/src/client/index.d.ts.map +1 -1
  41. package/dist/types/tdf3/src/tdf.d.ts +5 -2
  42. package/dist/types/tdf3/src/tdf.d.ts.map +1 -1
  43. package/dist/web/src/access/access-rpc.js +6 -5
  44. package/dist/web/src/access.js +18 -5
  45. package/dist/web/src/auth/interceptors.js +142 -0
  46. package/dist/web/src/auth/oidc.js +5 -3
  47. package/dist/web/src/auth/token-providers.js +242 -0
  48. package/dist/web/src/index.js +4 -1
  49. package/dist/web/src/opentdf.js +40 -32
  50. package/dist/web/src/platform/authorization/entity-identifiers.js +81 -0
  51. package/dist/web/src/platform.js +3 -46
  52. package/dist/web/src/policy/api.js +9 -5
  53. package/dist/web/src/policy/discovery.js +10 -9
  54. package/dist/web/src/version.js +1 -1
  55. package/dist/web/tdf3/src/client/index.js +35 -17
  56. package/dist/web/tdf3/src/tdf.js +8 -7
  57. package/package.json +1 -1
  58. package/src/access/access-rpc.ts +5 -5
  59. package/src/access.ts +29 -13
  60. package/src/auth/interceptors.ts +197 -0
  61. package/src/auth/oidc.ts +5 -3
  62. package/src/auth/token-providers.ts +303 -0
  63. package/src/index.ts +25 -0
  64. package/src/opentdf.ts +54 -34
  65. package/src/platform/authorization/entity-identifiers.ts +102 -0
  66. package/src/platform.ts +8 -52
  67. package/src/policy/api.ts +8 -5
  68. package/src/policy/discovery.ts +9 -9
  69. package/src/version.ts +1 -1
  70. package/tdf3/src/client/index.ts +46 -17
  71. package/tdf3/src/tdf.ts +14 -11
package/tdf3/src/tdf.ts CHANGED
@@ -15,6 +15,7 @@ import {
15
15
  UnsignedRewrapRequest_WithKeyAccessObjectSchema,
16
16
  } from '../../src/platform/kas/kas_pb.js';
17
17
  import { type AuthProvider, reqSignature } from '../../src/auth/auth.js';
18
+ import { type AuthConfig } from '../../src/auth/interceptors.js';
18
19
  import { handleRpcRewrapErrorString } from '../../src/access/access-rpc.js';
19
20
  import { allPool, anyPool } from '../../src/concurrency.js';
20
21
  import { base64, hex } from '../../src/encodings/index.js';
@@ -152,7 +153,8 @@ export type EncryptConfiguration = {
152
153
  contentStream: ReadableStream<Uint8Array>;
153
154
  mimeType?: string;
154
155
  policy: Policy;
155
- authProvider?: AuthProvider;
156
+ /** Auth configuration: AuthProvider or { interceptors }. */
157
+ auth?: AuthConfig;
156
158
  byteLimit: number;
157
159
  progressHandler?: (bytesProcessed: number) => void;
158
160
  keyForEncryption: KeyInfo;
@@ -166,7 +168,8 @@ export type DecryptConfiguration = {
166
168
  fulfillableObligations: string[];
167
169
  allowedKases?: string[];
168
170
  allowList?: OriginAllowList;
169
- authProvider: AuthProvider;
171
+ /** Auth configuration: AuthProvider or { interceptors }. */
172
+ auth?: AuthConfig;
170
173
  cryptoService: CryptoService;
171
174
 
172
175
  dpopKeys: KeyPair;
@@ -371,7 +374,7 @@ function isTargetSpecLegacyTDF(targetSpecVersion?: string): boolean {
371
374
  }
372
375
 
373
376
  export async function writeStream(cfg: EncryptConfiguration): Promise<DecoratedReadableStream> {
374
- if (!cfg.authProvider) {
377
+ if (!cfg.auth) {
375
378
  throw new ConfigurationError('No authorization middleware defined');
376
379
  }
377
380
  if (!cfg.contentStream) {
@@ -737,7 +740,7 @@ type RewrapResponseData = {
737
740
  async function unwrapKey({
738
741
  manifest,
739
742
  allowedKases,
740
- authProvider,
743
+ auth,
741
744
  dpopKeys,
742
745
  concurrencyLimit,
743
746
  cryptoService,
@@ -746,18 +749,18 @@ async function unwrapKey({
746
749
  }: {
747
750
  manifest: Manifest;
748
751
  allowedKases: OriginAllowList;
749
- authProvider: AuthProvider;
752
+ /** Auth configuration: AuthProvider or { interceptors }. */
753
+ auth?: AuthConfig;
750
754
  concurrencyLimit?: number;
751
755
  dpopKeys: KeyPair;
752
756
  cryptoService: CryptoService;
753
757
  wrappingKeyAlgorithm?: KasPublicKeyAlgorithm;
754
758
  fulfillableObligations: string[];
755
759
  }) {
756
- if (authProvider === undefined) {
757
- throw new ConfigurationError(
758
- 'rewrap requires auth provider; must be configured in client constructor'
759
- );
760
+ if (!auth) {
761
+ throw new ConfigurationError('rewrap requires auth; must be configured in client constructor');
760
762
  }
763
+ const resolvedAuth: AuthConfig = auth;
761
764
  const { keyAccess } = manifest.encryptionInformation;
762
765
  const splitPotentials = splitLookupTableFactory(keyAccess, allowedKases);
763
766
 
@@ -829,7 +832,7 @@ async function unwrapKey({
829
832
  const rewrapResp = await fetchWrappedKey(
830
833
  url,
831
834
  signedRequestToken,
832
- authProvider,
835
+ resolvedAuth,
833
836
  fulfillableObligations
834
837
  );
835
838
  // Upgrade V1 response to V2 format if needed
@@ -1143,7 +1146,7 @@ export async function decryptStreamFrom(
1143
1146
  const { metadata, reconstructedKey, requiredObligations } = await unwrapKey({
1144
1147
  fulfillableObligations: cfg.fulfillableObligations,
1145
1148
  manifest,
1146
- authProvider: cfg.authProvider,
1149
+ auth: cfg.auth,
1147
1150
  allowedKases: allowList,
1148
1151
  dpopKeys: cfg.dpopKeys,
1149
1152
  cryptoService: cfg.cryptoService,