@breadstone/archipel-mcp 0.0.40 → 0.0.42

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 (131) hide show
  1. package/data/guides/blob-storage.md +20 -16
  2. package/data/guides/implementing-ports.md +2 -0
  3. package/data/guides/payments-and-feature-gating.md +76 -45
  4. package/data/packages/platform-blob-storage/api/Class.AwsS3BlobStorageStrategy.md +197 -0
  5. package/data/packages/platform-blob-storage/api/Class.AzureBlobStorageStrategy.md +197 -0
  6. package/data/packages/platform-blob-storage/api/Class.BlobModule.md +20 -10
  7. package/data/packages/platform-blob-storage/api/Class.BlobService.md +8 -8
  8. package/data/packages/platform-blob-storage/api/Class.BlobStorageStrategyBase.md +158 -0
  9. package/data/packages/platform-blob-storage/api/Class.LocalBlobStorageStrategy.md +197 -0
  10. package/data/packages/platform-blob-storage/api/Class.VercelBlobStorageStrategy.md +198 -0
  11. package/data/packages/platform-blob-storage/api/Interface.IBlobDeleteRequest.md +4 -4
  12. package/data/packages/platform-blob-storage/api/Interface.IBlobDownloadRequest.md +5 -5
  13. package/data/packages/platform-blob-storage/api/Interface.IBlobDownloadResult.md +6 -6
  14. package/data/packages/platform-blob-storage/api/Interface.IBlobModuleOptions.md +20 -10
  15. package/data/packages/platform-blob-storage/api/Interface.IBlobObjectMetadata.md +14 -14
  16. package/data/packages/platform-blob-storage/api/Interface.IBlobSignedUrlRequest.md +5 -5
  17. package/data/packages/platform-blob-storage/api/Interface.IBlobUploadRequest.md +10 -10
  18. package/data/packages/platform-blob-storage/api/Interface.IBlobUploadResult.md +3 -3
  19. package/data/packages/platform-blob-storage/api/TypeAlias.BlobDownloadResponseType.md +1 -1
  20. package/data/packages/platform-blob-storage/api/TypeAlias.BlobUploadBody.md +1 -1
  21. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_ACCESS_KEY_ID.md +14 -0
  22. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_BUCKET.md +14 -0
  23. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_CONFIG_ENTRIES.md +14 -0
  24. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_ENDPOINT.md +14 -0
  25. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_REGION.md +14 -0
  26. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_SECRET_ACCESS_KEY.md +14 -0
  27. package/data/packages/platform-blob-storage/api/Variable.AZURE_BLOB_CONNECTION_STRING.md +14 -0
  28. package/data/packages/platform-blob-storage/api/Variable.AZURE_BLOB_CONTAINER_NAME.md +14 -0
  29. package/data/packages/platform-blob-storage/api/Variable.AZURE_CONFIG_ENTRIES.md +14 -0
  30. package/data/packages/platform-blob-storage/api/{Variable.BLOB_PROVIDER.md → Variable.BLOB_STORAGE_STRATEGY_TOKEN.md} +3 -3
  31. package/data/packages/platform-blob-storage/api/Variable.BlobDownloadResponseTypes.md +5 -5
  32. package/data/packages/platform-blob-storage/api/Variable.LOCAL_BLOB_BASE_PATH.md +14 -0
  33. package/data/packages/platform-blob-storage/api/Variable.LOCAL_BLOB_BUCKET.md +14 -0
  34. package/data/packages/platform-blob-storage/api/Variable.LOCAL_CONFIG_ENTRIES.md +14 -0
  35. package/data/packages/platform-blob-storage/api/Variable.PLATFORM_BLOB_STORAGE_CONFIG_ENTRIES.md +14 -0
  36. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_BUCKET.md +14 -0
  37. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_PUBLIC_URL.md +14 -0
  38. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_READ_WRITE_TOKEN.md +14 -0
  39. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_REGION.md +14 -0
  40. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_URL.md +14 -0
  41. package/data/packages/platform-blob-storage/api/Variable.VERCEL_CONFIG_ENTRIES.md +14 -0
  42. package/data/packages/platform-blob-storage/api/index.md +26 -18
  43. package/data/packages/platform-blob-storage/index.md +104 -68
  44. package/data/packages/platform-bootstrap/api/index.md +0 -2
  45. package/data/packages/platform-core/api/Class.ProblemDetailResponse.md +8 -8
  46. package/data/packages/platform-database/api/Class.DatabaseHealthIndicator.md +4 -4
  47. package/data/packages/platform-database/api/Class.DatabaseModule.md +3 -3
  48. package/data/packages/platform-database/api/Class.DatabaseService.md +12 -11
  49. package/data/packages/platform-database/api/Class.PrismaService.md +6 -5
  50. package/data/packages/platform-database/api/Class.RepositoryBase.md +23 -23
  51. package/data/packages/platform-database/api/Class.RepositoryBase2.md +7 -7
  52. package/data/packages/platform-database/api/Class.RepositoryExceptionFilter.md +2 -2
  53. package/data/packages/platform-database/api/Function.aggregate.md +1 -1
  54. package/data/packages/platform-database/api/Function.aggregateRaw.md +1 -1
  55. package/data/packages/platform-database/api/Function.count.md +1 -1
  56. package/data/packages/platform-database/api/Function.create.md +1 -1
  57. package/data/packages/platform-database/api/Function.createMany.md +1 -1
  58. package/data/packages/platform-database/api/Function.createManyAndReturn.md +1 -1
  59. package/data/packages/platform-database/api/Function.cursorPaginator.md +1 -1
  60. package/data/packages/platform-database/api/Function.findFirst.md +1 -1
  61. package/data/packages/platform-database/api/Function.findFirstOrThrow.md +1 -1
  62. package/data/packages/platform-database/api/Function.findMany.md +1 -1
  63. package/data/packages/platform-database/api/Function.findManyPaged.md +1 -1
  64. package/data/packages/platform-database/api/Function.findRaw.md +1 -1
  65. package/data/packages/platform-database/api/Function.findUnique.md +1 -1
  66. package/data/packages/platform-database/api/Function.findUniqueOrThrow.md +1 -1
  67. package/data/packages/platform-database/api/Function.groupBy.md +1 -1
  68. package/data/packages/platform-database/api/Function.pageable.md +1 -1
  69. package/data/packages/platform-database/api/Function.paginator.md +1 -1
  70. package/data/packages/platform-database/api/Function.pipe.md +1 -1
  71. package/data/packages/platform-database/api/Function.pipeAll.md +1 -1
  72. package/data/packages/platform-database/api/Function.query.md +1 -1
  73. package/data/packages/platform-database/api/Function.query2.md +1 -1
  74. package/data/packages/platform-database/api/Function.remove.md +1 -1
  75. package/data/packages/platform-database/api/Function.removeMany.md +1 -1
  76. package/data/packages/platform-database/api/Function.skip.md +1 -1
  77. package/data/packages/platform-database/api/Function.transactionalQuery.md +1 -1
  78. package/data/packages/platform-database/api/Function.update.md +1 -1
  79. package/data/packages/platform-database/api/Function.updateMany.md +1 -1
  80. package/data/packages/platform-database/api/Function.updateManyAndReturn.md +1 -1
  81. package/data/packages/platform-database/api/Function.upsert.md +1 -1
  82. package/data/packages/platform-database/api/Interface.ICursorPaginateOptions.md +4 -4
  83. package/data/packages/platform-database/api/Interface.ICursorPaginatedResult.md +3 -3
  84. package/data/packages/platform-database/api/Interface.IDatabaseModuleConfig.md +3 -3
  85. package/data/packages/platform-database/api/Interface.IPaginateOptions.md +3 -3
  86. package/data/packages/platform-database/api/Interface.IPaginatedResult.md +3 -3
  87. package/data/packages/platform-database/api/Interface.IPrismaServiceOptions.md +2 -2
  88. package/data/packages/platform-database/api/Interface.IRepositoryQuery.md +3 -3
  89. package/data/packages/platform-database/api/Interface.IRepositoryQuery2.md +3 -3
  90. package/data/packages/platform-database/api/Interface.ITransactionalRepositoryQuery.md +4 -4
  91. package/data/packages/platform-database/api/TypeAlias.CursorPaginateFunction.md +1 -1
  92. package/data/packages/platform-database/api/TypeAlias.DelegateArgs.md +1 -1
  93. package/data/packages/platform-database/api/TypeAlias.DelegateOperations.md +1 -1
  94. package/data/packages/platform-database/api/TypeAlias.DelegateReturnTypes.md +1 -1
  95. package/data/packages/platform-database/api/TypeAlias.PaginateFunction.md +1 -1
  96. package/data/packages/platform-database/api/TypeAlias.QueryResultType.md +1 -1
  97. package/data/packages/platform-database/api/TypeAlias.RepositoryOperationsAll.md +1 -1
  98. package/data/packages/platform-database/api/TypeAlias.RepositoryOperationsBase.md +1 -1
  99. package/data/packages/platform-database/api/TypeAlias.TransactionalQueryResultType.md +1 -1
  100. package/data/packages/platform-database/api/Variable.DATABASE_MODULE_CONFIG.md +1 -1
  101. package/data/packages/platform-database/api/Variable.DB_AUTO_CONNECTION.md +1 -1
  102. package/data/packages/platform-database/api/Variable.PLATFORM_DATABASE_CONFIG_ENTRIES.md +1 -1
  103. package/data/packages/platform-payments/api/Class.FeatureAccessPort.md +13 -5
  104. package/data/packages/platform-payments/api/Class.FeatureGuard.md +3 -3
  105. package/data/packages/platform-payments/api/Class.FeatureUsageInterceptor.md +3 -3
  106. package/data/packages/platform-payments/api/Function.RequiresFeature.md +1 -1
  107. package/data/packages/platform-payments/api/Interface.IFeatureAccessContext.md +46 -0
  108. package/data/packages/platform-payments/api/Variable.FEATURE_KEY_METADATA.md +1 -1
  109. package/data/packages/platform-payments/api/index.md +1 -0
  110. package/data/packages/platform-payments/index.md +33 -12
  111. package/data/patterns/guard-pattern.md +27 -6
  112. package/data/patterns/module-pattern.md +6 -2
  113. package/package.json +1 -1
  114. package/data/packages/platform-blob-storage/api/Class.AwsS3BlobProvider.md +0 -196
  115. package/data/packages/platform-blob-storage/api/Class.AzureBlobProvider.md +0 -196
  116. package/data/packages/platform-blob-storage/api/Class.VercelBlobProvider.md +0 -197
  117. package/data/packages/platform-blob-storage/api/Interface.IAwsS3BlobProviderRegistration.md +0 -28
  118. package/data/packages/platform-blob-storage/api/Interface.IAwsS3ProviderOptions.md +0 -68
  119. package/data/packages/platform-blob-storage/api/Interface.IAzureBlobProviderOptions.md +0 -48
  120. package/data/packages/platform-blob-storage/api/Interface.IAzureBlobProviderRegistration.md +0 -28
  121. package/data/packages/platform-blob-storage/api/Interface.IBlobProvider.md +0 -114
  122. package/data/packages/platform-blob-storage/api/Interface.ICustomBlobProviderRegistration.md +0 -28
  123. package/data/packages/platform-blob-storage/api/Interface.IVercelBlobProviderOptions.md +0 -80
  124. package/data/packages/platform-blob-storage/api/Interface.IVercelBlobProviderRegistration.md +0 -28
  125. package/data/packages/platform-blob-storage/api/TypeAlias.IBlobProviderRegistration.md +0 -16
  126. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_PROVIDER_OPTIONS.md +0 -12
  127. package/data/packages/platform-blob-storage/api/Variable.AZURE_BLOB_PROVIDER_OPTIONS.md +0 -12
  128. package/data/packages/platform-blob-storage/api/Variable.BlobProviderKinds.md +0 -26
  129. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_PROVIDER_OPTIONS.md +0 -12
  130. package/data/packages/platform-bootstrap/api/Function.useExpressServer.md +0 -32
  131. package/data/packages/platform-bootstrap/api/Interface.IExpressServerStepOptions.md +0 -46
@@ -314,15 +314,30 @@ type SubscriptionStatus =
314
314
 
315
315
  ## FeatureAccessPort
316
316
 
317
- Abstract port for checking feature quotas and recording usage. This enables feature-gating with any billing system.
317
+ Abstract port for checking feature quotas and recording usage. This enables feature-gating with any billing system and optional request-scoped tenancy context.
318
318
 
319
319
  ```typescript
320
320
  abstract class FeatureAccessPort {
321
- abstract checkAccess(userId: string, featureKey: string): Promise<IFeatureAccessResult>;
322
- abstract recordUsage(userId: string, featureKey: string): Promise<void>;
321
+ abstract checkAccess(
322
+ userId: string,
323
+ featureKey: string,
324
+ context?: IFeatureAccessContext,
325
+ ): Promise<IFeatureAccessResult>;
326
+
327
+ abstract recordUsage(userId: string, featureKey: string, context?: IFeatureAccessContext): Promise<void>;
323
328
  }
324
329
  ```
325
330
 
331
+ `FeatureGuard` and `FeatureUsageInterceptor` create `IFeatureAccessContext` from the authenticated request subject. The guard resolves `request.user.id`, converts numeric ids to strings, forwards `request.user.tenantId` when present, and includes the original subject for adapters that need additional claims.
332
+
333
+ ### IFeatureAccessContext
334
+
335
+ | Field | Type | Description |
336
+ | ---------- | -------------------- | ---------------------------------------------------------- |
337
+ | `userId` | `string` | Authenticated user identifier resolved from `request.user` |
338
+ | `tenantId` | `string \| number` | Optional tenant identifier from the authenticated subject |
339
+ | `subject` | `unknown` | Original authenticated subject from the request |
340
+
326
341
  ### IFeatureAccessResult
327
342
 
328
343
  | Field | Type | Description |
@@ -345,9 +360,13 @@ export class PrismaFeatureAccessAdapter extends FeatureAccessPort {
345
360
  this._prisma = prisma;
346
361
  }
347
362
 
348
- public async checkAccess(userId: string, featureKey: string): Promise<IFeatureAccessResult> {
363
+ public async checkAccess(
364
+ userId: string,
365
+ featureKey: string,
366
+ context?: IFeatureAccessContext,
367
+ ): Promise<IFeatureAccessResult> {
349
368
  const subscription = await this._prisma.subscription.findFirst({
350
- where: { userId, status: 'active' },
369
+ where: { userId, tenantId: context?.tenantId, status: 'active' },
351
370
  include: { plan: { include: { features: true } } },
352
371
  });
353
372
 
@@ -360,6 +379,7 @@ export class PrismaFeatureAccessAdapter extends FeatureAccessPort {
360
379
  const usage = await this._prisma.featureUsage.count({
361
380
  where: {
362
381
  userId,
382
+ tenantId: context?.tenantId,
363
383
  featureKey,
364
384
  createdAt: { gte: periodStart },
365
385
  },
@@ -377,14 +397,14 @@ export class PrismaFeatureAccessAdapter extends FeatureAccessPort {
377
397
  };
378
398
  }
379
399
 
380
- public async recordUsage(userId: string, featureKey: string): Promise<void> {
381
- const access = await this.checkAccess(userId, featureKey);
400
+ public async recordUsage(userId: string, featureKey: string, context?: IFeatureAccessContext): Promise<void> {
401
+ const access = await this.checkAccess(userId, featureKey, context);
382
402
  if (!access.allowed) {
383
403
  throw new Error(`Feature quota exceeded for ${featureKey}`);
384
404
  }
385
405
 
386
406
  await this._prisma.featureUsage.create({
387
- data: { userId, featureKey },
407
+ data: { userId, tenantId: context?.tenantId, featureKey },
388
408
  });
389
409
  }
390
410
 
@@ -417,7 +437,7 @@ export class RecipeController {
417
437
 
418
438
  ### FeatureGuard
419
439
 
420
- Checks the `@RequiresFeature` metadata against `FeatureAccessPort.checkAccess()`. Apply it globally or per-controller:
440
+ Checks the `@RequiresFeature` metadata against `FeatureAccessPort.checkAccess()`. Metadata is resolved from route handlers first and controller classes second. Apply the guard globally or per-controller:
421
441
 
422
442
  ```typescript
423
443
  // Global registration
@@ -431,7 +451,7 @@ export class RecipeController {
431
451
  }
432
452
  ```
433
453
 
434
- The guard attaches the `IFeatureAccessResult` to the request as `request.featureAccess`, enabling downstream access to quota information.
454
+ The guard passes `IFeatureAccessContext` into the access port and attaches the `IFeatureAccessResult` to the request as `request.featureAccess`, enabling downstream access to quota information.
435
455
 
436
456
  ### FeatureUsageInterceptor
437
457
 
@@ -446,7 +466,7 @@ export class RecipeController {
446
466
  @RequiresFeature('RECIPE_CREATION')
447
467
  public async createRecipe(@Body() body: CreateRecipeDto): Promise<RecipeResponse> {
448
468
  // After successful response, FeatureUsageInterceptor calls
449
- // FeatureAccessPort.recordUsage(userId, 'RECIPE_CREATION')
469
+ // FeatureAccessPort.recordUsage(userId, 'RECIPE_CREATION', context)
450
470
  }
451
471
  }
452
472
  ```
@@ -514,7 +534,7 @@ All payment clients throw a `PaymentError` when provider operations fail (checko
514
534
  import { PaymentError } from '@breadstone/archipel-platform-payments';
515
535
 
516
536
  try {
517
- await this._paymentClient.createCheckoutSession(params);
537
+ await this._paymentClient.createCheckoutSession(priceId, successUrl, cancelUrl, userId);
518
538
  } catch (error) {
519
539
  if (error instanceof PaymentError) {
520
540
  logger.error('Payment operation failed', {
@@ -566,6 +586,7 @@ export class AppModule {}
566
586
  | `PaymentModule` | NestJS Module | Main module with `register()` |
567
587
  | `PaymentClientPort` | Abstract Port | Provider-agnostic payment contract |
568
588
  | `FeatureAccessPort` | Abstract Port | Feature quota checking |
589
+ | `IFeatureAccessContext` | Interface | Request-scoped access context |
569
590
  | `IFeatureAccessResult` | Interface | Quota check result |
570
591
  | `FeatureGuard` | Guard | Enforces `@RequiresFeature` |
571
592
  | `FeatureUsageInterceptor` | Interceptor | Records feature usage |
@@ -53,6 +53,7 @@ export const RequiresFeature = (featureKey: string) =>
53
53
  import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common';
54
54
  import { Reflector } from '@nestjs/core';
55
55
  import { FeatureAccessPort } from '../contracts/FeatureAccessPort';
56
+ import type { IFeatureAccessContext } from '../contracts/IFeatureAccessContext';
56
57
 
57
58
  @Injectable()
58
59
  export class FeatureGuard implements CanActivate {
@@ -76,7 +77,10 @@ export class FeatureGuard implements CanActivate {
76
77
  // #region Methods
77
78
 
78
79
  public async canActivate(context: ExecutionContext): Promise<boolean> {
79
- const featureKey = this._reflector.get<string>(FEATURE_KEY_METADATA, context.getHandler());
80
+ const featureKey = this._reflector.getAllAndOverride<string | undefined>(FEATURE_KEY_METADATA, [
81
+ context.getHandler(),
82
+ context.getClass(),
83
+ ]);
80
84
 
81
85
  if (!featureKey) {
82
86
  return true; // No feature requirement on this endpoint
@@ -84,12 +88,18 @@ export class FeatureGuard implements CanActivate {
84
88
 
85
89
  const request = context.switchToHttp().getRequest();
86
90
  const user = request.user;
91
+ const userId = typeof user?.id === 'number' ? String(user.id) : user?.id;
87
92
 
88
- if (!user || !user.id) {
93
+ if (!userId) {
89
94
  return false;
90
95
  }
91
96
 
92
- const access = await this._featureAccessPort.checkAccess(user.id, featureKey);
97
+ const accessContext: IFeatureAccessContext = {
98
+ userId,
99
+ tenantId: user?.tenantId,
100
+ subject: user,
101
+ };
102
+ const access = await this._featureAccessPort.checkAccess(userId, featureKey, accessContext);
93
103
  request.featureAccess = access; // Attach for downstream use
94
104
 
95
105
  return access.allowed;
@@ -130,7 +140,10 @@ export class FeatureUsageInterceptor implements NestInterceptor {
130
140
  // #region Methods
131
141
 
132
142
  public intercept(context: ExecutionContext, next: CallHandler): Observable<unknown> {
133
- const featureKey = this._reflector.get<string>(FEATURE_KEY_METADATA, context.getHandler());
143
+ const featureKey = this._reflector.getAllAndOverride<string | undefined>(FEATURE_KEY_METADATA, [
144
+ context.getHandler(),
145
+ context.getClass(),
146
+ ]);
134
147
 
135
148
  if (!featureKey) {
136
149
  return next.handle();
@@ -138,11 +151,17 @@ export class FeatureUsageInterceptor implements NestInterceptor {
138
151
 
139
152
  const request = context.switchToHttp().getRequest();
140
153
  const user = request.user;
154
+ const userId = typeof user?.id === 'number' ? String(user.id) : user?.id;
141
155
 
142
156
  return next.handle().pipe(
143
157
  tap(async () => {
144
- if (user && user.id) {
145
- await this._featureAccessPort.recordUsage(user.id, featureKey);
158
+ if (userId) {
159
+ const accessContext: IFeatureAccessContext = {
160
+ userId,
161
+ tenantId: user?.tenantId,
162
+ subject: user,
163
+ };
164
+ await this._featureAccessPort.recordUsage(userId, featureKey, accessContext);
146
165
  }
147
166
  }),
148
167
  );
@@ -153,6 +172,8 @@ export class FeatureUsageInterceptor implements NestInterceptor {
153
172
  }
154
173
  ```
155
174
 
175
+ The context object lets adapters evaluate tenant-specific plans or inspect claims from the authenticated subject without pushing billing concerns into controllers.
176
+
156
177
  ### Step 4: Controller Usage
157
178
 
158
179
  ```typescript
@@ -24,9 +24,13 @@ full customization through dependency injection.
24
24
 
25
25
  export abstract class FeatureAccessPort {
26
26
 
27
- public abstract checkAccess(userId: string, featureKey: string): Promise<IFeatureAccessResult>;
27
+ public abstract checkAccess(
28
+ userId: string,
29
+ featureKey: string,
30
+ context?: IFeatureAccessContext,
31
+ ): Promise<IFeatureAccessResult>;
28
32
 
29
- public abstract recordUsage(userId: string, featureKey: string): Promise<void>;
33
+ public abstract recordUsage(userId: string, featureKey: string, context?: IFeatureAccessContext): Promise<void>;
30
34
 
31
35
  }
32
36
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@breadstone/archipel-mcp",
3
- "version": "0.0.40",
3
+ "version": "0.0.42",
4
4
  "description": "MCP server providing Archipel platform knowledge - documentation, query patterns, and coding conventions - to AI development tools.",
5
5
  "type": "commonjs",
6
6
  "main": "./src/main.js",
@@ -1,196 +0,0 @@
1
- ---
2
- title: 'Class: AwsS3BlobProvider'
3
- generated: true
4
- editUrl: false
5
- ---
6
- # Class: AwsS3BlobProvider
7
-
8
- Defined in: [providers/AwsS3BlobProvider.ts:38](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AwsS3BlobProvider.ts#L38)
9
-
10
- Provides an implementation of [IBlobProvider](Interface.IBlobProvider) for Amazon S3.
11
-
12
- ## Implements
13
-
14
- - [`IBlobProvider`](Interface.IBlobProvider)
15
-
16
- ## Constructors
17
-
18
- ### Constructor
19
-
20
- ```ts
21
- new AwsS3BlobProvider(options): AwsS3BlobProvider;
22
- ```
23
-
24
- Defined in: [providers/AwsS3BlobProvider.ts:55](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AwsS3BlobProvider.ts#L55)
25
-
26
- Initializes a new instance of the AwsS3BlobProvider class.
27
-
28
- #### Parameters
29
-
30
- | Parameter | Type | Description |
31
- | ------ | ------ | ------ |
32
- | `options` | [`IAwsS3ProviderOptions`](Interface.IAwsS3ProviderOptions) | The provider configuration options. |
33
-
34
- #### Returns
35
-
36
- `AwsS3BlobProvider`
37
-
38
- ## Accessors
39
-
40
- ### defaultBucket
41
-
42
- #### Get Signature
43
-
44
- ```ts
45
- get defaultBucket(): string;
46
- ```
47
-
48
- Defined in: [providers/AwsS3BlobProvider.ts:90](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AwsS3BlobProvider.ts#L90)
49
-
50
- Gets the default bucket configured for the provider.
51
-
52
- ##### Returns
53
-
54
- `string`
55
-
56
- #### Implementation of
57
-
58
- [`IBlobProvider`](Interface.IBlobProvider).[`defaultBucket`](Interface.IBlobProvider#defaultbucket)
59
-
60
- ***
61
-
62
- ### providerId
63
-
64
- #### Get Signature
65
-
66
- ```ts
67
- get providerId(): string;
68
- ```
69
-
70
- Defined in: [providers/AwsS3BlobProvider.ts:83](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AwsS3BlobProvider.ts#L83)
71
-
72
- Gets the identifier used to persist provider metadata.
73
-
74
- ##### Returns
75
-
76
- `string`
77
-
78
- #### Implementation of
79
-
80
- [`IBlobProvider`](Interface.IBlobProvider).[`providerId`](Interface.IBlobProvider#providerid)
81
-
82
- ## Methods
83
-
84
- ### createSignedUrl()
85
-
86
- ```ts
87
- createSignedUrl(request): Promise<string>;
88
- ```
89
-
90
- Defined in: [providers/AwsS3BlobProvider.ts:210](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AwsS3BlobProvider.ts#L210)
91
-
92
- Creates a pre-signed URL for the specified blob object.
93
-
94
- #### Parameters
95
-
96
- | Parameter | Type | Description |
97
- | ------ | ------ | ------ |
98
- | `request` | [`IBlobSignedUrlRequest`](Interface.IBlobSignedUrlRequest) | The request describing the object to link. |
99
-
100
- #### Returns
101
-
102
- `Promise`\<`string`\>
103
-
104
- The generated pre-signed URL.
105
-
106
- #### Implementation of
107
-
108
- [`IBlobProvider`](Interface.IBlobProvider).[`createSignedUrl`](Interface.IBlobProvider#createsignedurl)
109
-
110
- ***
111
-
112
- ### deleteObject()
113
-
114
- ```ts
115
- deleteObject(request): Promise<void>;
116
- ```
117
-
118
- Defined in: [providers/AwsS3BlobProvider.ts:186](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AwsS3BlobProvider.ts#L186)
119
-
120
- Deletes a blob object from Amazon S3.
121
-
122
- #### Parameters
123
-
124
- | Parameter | Type | Description |
125
- | ------ | ------ | ------ |
126
- | `request` | [`IBlobDeleteRequest`](Interface.IBlobDeleteRequest) | The delete request describing the object to remove. |
127
-
128
- #### Returns
129
-
130
- `Promise`\<`void`\>
131
-
132
- #### Implementation of
133
-
134
- [`IBlobProvider`](Interface.IBlobProvider).[`deleteObject`](Interface.IBlobProvider#deleteobject)
135
-
136
- ***
137
-
138
- ### downloadObject()
139
-
140
- ```ts
141
- downloadObject<TData>(request): Promise<IBlobDownloadResult<TData>>;
142
- ```
143
-
144
- Defined in: [providers/AwsS3BlobProvider.ts:156](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AwsS3BlobProvider.ts#L156)
145
-
146
- Downloads a blob object from Amazon S3.
147
-
148
- #### Type Parameters
149
-
150
- | Type Parameter |
151
- | ------ |
152
- | `TData` |
153
-
154
- #### Parameters
155
-
156
- | Parameter | Type | Description |
157
- | ------ | ------ | ------ |
158
- | `request` | [`IBlobDownloadRequest`](Interface.IBlobDownloadRequest) | The download request describing the object to download. |
159
-
160
- #### Returns
161
-
162
- `Promise`\<[`IBlobDownloadResult`](Interface.IBlobDownloadResult)\<`TData`\>\>
163
-
164
- The download result including payload and metadata.
165
-
166
- #### Implementation of
167
-
168
- [`IBlobProvider`](Interface.IBlobProvider).[`downloadObject`](Interface.IBlobProvider#downloadobject)
169
-
170
- ***
171
-
172
- ### uploadObject()
173
-
174
- ```ts
175
- uploadObject(request): Promise<IBlobUploadResult>;
176
- ```
177
-
178
- Defined in: [providers/AwsS3BlobProvider.ts:105](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AwsS3BlobProvider.ts#L105)
179
-
180
- Uploads a blob object to Amazon S3.
181
-
182
- #### Parameters
183
-
184
- | Parameter | Type | Description |
185
- | ------ | ------ | ------ |
186
- | `request` | [`IBlobUploadRequest`](Interface.IBlobUploadRequest) | The upload request describing the object to upload. |
187
-
188
- #### Returns
189
-
190
- `Promise`\<[`IBlobUploadResult`](Interface.IBlobUploadResult)\>
191
-
192
- The resulting upload metadata.
193
-
194
- #### Implementation of
195
-
196
- [`IBlobProvider`](Interface.IBlobProvider).[`uploadObject`](Interface.IBlobProvider#uploadobject)
@@ -1,196 +0,0 @@
1
- ---
2
- title: 'Class: AzureBlobProvider'
3
- generated: true
4
- editUrl: false
5
- ---
6
- # Class: AzureBlobProvider
7
-
8
- Defined in: [providers/AzureBlobProvider.ts:35](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AzureBlobProvider.ts#L35)
9
-
10
- Provides an implementation of [IBlobProvider](Interface.IBlobProvider) for Microsoft Azure Blob Storage.
11
-
12
- ## Implements
13
-
14
- - [`IBlobProvider`](Interface.IBlobProvider)
15
-
16
- ## Constructors
17
-
18
- ### Constructor
19
-
20
- ```ts
21
- new AzureBlobProvider(options): AzureBlobProvider;
22
- ```
23
-
24
- Defined in: [providers/AzureBlobProvider.ts:53](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AzureBlobProvider.ts#L53)
25
-
26
- Initializes a new instance of the AzureBlobProvider class.
27
-
28
- #### Parameters
29
-
30
- | Parameter | Type | Description |
31
- | ------ | ------ | ------ |
32
- | `options` | [`IAzureBlobProviderOptions`](Interface.IAzureBlobProviderOptions) | The provider configuration options. |
33
-
34
- #### Returns
35
-
36
- `AzureBlobProvider`
37
-
38
- ## Accessors
39
-
40
- ### defaultBucket
41
-
42
- #### Get Signature
43
-
44
- ```ts
45
- get defaultBucket(): string;
46
- ```
47
-
48
- Defined in: [providers/AzureBlobProvider.ts:84](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AzureBlobProvider.ts#L84)
49
-
50
- Gets the default bucket (container) configured for the provider.
51
-
52
- ##### Returns
53
-
54
- `string`
55
-
56
- #### Implementation of
57
-
58
- [`IBlobProvider`](Interface.IBlobProvider).[`defaultBucket`](Interface.IBlobProvider#defaultbucket)
59
-
60
- ***
61
-
62
- ### providerId
63
-
64
- #### Get Signature
65
-
66
- ```ts
67
- get providerId(): string;
68
- ```
69
-
70
- Defined in: [providers/AzureBlobProvider.ts:77](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AzureBlobProvider.ts#L77)
71
-
72
- Gets the identifier used to persist provider metadata.
73
-
74
- ##### Returns
75
-
76
- `string`
77
-
78
- #### Implementation of
79
-
80
- [`IBlobProvider`](Interface.IBlobProvider).[`providerId`](Interface.IBlobProvider#providerid)
81
-
82
- ## Methods
83
-
84
- ### createSignedUrl()
85
-
86
- ```ts
87
- createSignedUrl(request): Promise<string>;
88
- ```
89
-
90
- Defined in: [providers/AzureBlobProvider.ts:194](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AzureBlobProvider.ts#L194)
91
-
92
- Creates a SAS-signed URL for the specified blob object.
93
-
94
- #### Parameters
95
-
96
- | Parameter | Type | Description |
97
- | ------ | ------ | ------ |
98
- | `request` | [`IBlobSignedUrlRequest`](Interface.IBlobSignedUrlRequest) | The request describing the object to link. |
99
-
100
- #### Returns
101
-
102
- `Promise`\<`string`\>
103
-
104
- The generated SAS URL.
105
-
106
- #### Implementation of
107
-
108
- [`IBlobProvider`](Interface.IBlobProvider).[`createSignedUrl`](Interface.IBlobProvider#createsignedurl)
109
-
110
- ***
111
-
112
- ### deleteObject()
113
-
114
- ```ts
115
- deleteObject(request): Promise<void>;
116
- ```
117
-
118
- Defined in: [providers/AzureBlobProvider.ts:175](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AzureBlobProvider.ts#L175)
119
-
120
- Deletes a blob object from Azure Blob Storage.
121
-
122
- #### Parameters
123
-
124
- | Parameter | Type | Description |
125
- | ------ | ------ | ------ |
126
- | `request` | [`IBlobDeleteRequest`](Interface.IBlobDeleteRequest) | The delete request describing the object to remove. |
127
-
128
- #### Returns
129
-
130
- `Promise`\<`void`\>
131
-
132
- #### Implementation of
133
-
134
- [`IBlobProvider`](Interface.IBlobProvider).[`deleteObject`](Interface.IBlobProvider#deleteobject)
135
-
136
- ***
137
-
138
- ### downloadObject()
139
-
140
- ```ts
141
- downloadObject<TData>(request): Promise<IBlobDownloadResult<TData>>;
142
- ```
143
-
144
- Defined in: [providers/AzureBlobProvider.ts:147](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AzureBlobProvider.ts#L147)
145
-
146
- Downloads a blob object from Azure Blob Storage.
147
-
148
- #### Type Parameters
149
-
150
- | Type Parameter |
151
- | ------ |
152
- | `TData` |
153
-
154
- #### Parameters
155
-
156
- | Parameter | Type | Description |
157
- | ------ | ------ | ------ |
158
- | `request` | [`IBlobDownloadRequest`](Interface.IBlobDownloadRequest) | The download request describing the object to download. |
159
-
160
- #### Returns
161
-
162
- `Promise`\<[`IBlobDownloadResult`](Interface.IBlobDownloadResult)\<`TData`\>\>
163
-
164
- The download result including payload and metadata.
165
-
166
- #### Implementation of
167
-
168
- [`IBlobProvider`](Interface.IBlobProvider).[`downloadObject`](Interface.IBlobProvider#downloadobject)
169
-
170
- ***
171
-
172
- ### uploadObject()
173
-
174
- ```ts
175
- uploadObject(request): Promise<IBlobUploadResult>;
176
- ```
177
-
178
- Defined in: [providers/AzureBlobProvider.ts:99](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/providers/AzureBlobProvider.ts#L99)
179
-
180
- Uploads a blob object to Azure Blob Storage.
181
-
182
- #### Parameters
183
-
184
- | Parameter | Type | Description |
185
- | ------ | ------ | ------ |
186
- | `request` | [`IBlobUploadRequest`](Interface.IBlobUploadRequest) | The upload request describing the object to upload. |
187
-
188
- #### Returns
189
-
190
- `Promise`\<[`IBlobUploadResult`](Interface.IBlobUploadResult)\>
191
-
192
- The resulting upload metadata.
193
-
194
- #### Implementation of
195
-
196
- [`IBlobProvider`](Interface.IBlobProvider).[`uploadObject`](Interface.IBlobProvider#uploadobject)