@memberjunction/storage 6.2.0-edge.4 → 6.2.0-edge.5
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.
- package/dist/FileStorageEngine.d.ts +45 -1
- package/dist/FileStorageEngine.d.ts.map +1 -1
- package/dist/FileStorageEngine.js +72 -4
- package/dist/FileStorageEngine.js.map +1 -1
- package/dist/StorageAccessEvaluator.d.ts +196 -0
- package/dist/StorageAccessEvaluator.d.ts.map +1 -0
- package/dist/StorageAccessEvaluator.js +435 -0
- package/dist/StorageAccessEvaluator.js.map +1 -0
- package/dist/config.d.ts +22 -10
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/drivers/AWSFileStorage.d.ts +8 -0
- package/dist/drivers/AWSFileStorage.d.ts.map +1 -1
- package/dist/drivers/AWSFileStorage.js +11 -0
- package/dist/drivers/AWSFileStorage.js.map +1 -1
- package/dist/drivers/AzureFileStorage.d.ts +9 -0
- package/dist/drivers/AzureFileStorage.d.ts.map +1 -1
- package/dist/drivers/AzureFileStorage.js +22 -24
- package/dist/drivers/AzureFileStorage.js.map +1 -1
- package/dist/drivers/GoogleDriveFileStorage.d.ts +49 -2
- package/dist/drivers/GoogleDriveFileStorage.d.ts.map +1 -1
- package/dist/drivers/GoogleDriveFileStorage.js +80 -16
- package/dist/drivers/GoogleDriveFileStorage.js.map +1 -1
- package/dist/generic/FileStorageBase.d.ts +17 -1
- package/dist/generic/FileStorageBase.d.ts.map +1 -1
- package/dist/generic/FileStorageBase.js +18 -0
- package/dist/generic/FileStorageBase.js.map +1 -1
- package/dist/generic/ObjectKeys.d.ts +61 -0
- package/dist/generic/ObjectKeys.d.ts.map +1 -0
- package/dist/generic/ObjectKeys.js +82 -0
- package/dist/generic/ObjectKeys.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
- package/readme.md +74 -0
|
@@ -78,11 +78,14 @@ export function describeGoogleApiError(error) {
|
|
|
78
78
|
* folders and files with hierarchical paths, which makes some operations more natural
|
|
79
79
|
* while others (like pre-authenticated upload URLs) are not directly supported.
|
|
80
80
|
*
|
|
81
|
-
* It
|
|
81
|
+
* It authenticates with one of the following, from environment variables or a credential record:
|
|
82
82
|
* - STORAGE_GDRIVE_KEY_FILE: Path to a service account key file with Drive permissions
|
|
83
83
|
* - STORAGE_GDRIVE_CREDENTIALS_JSON: A JSON object containing service account credentials
|
|
84
|
+
* - STORAGE_GOOGLE_DRIVE_CLIENT_ID, _CLIENT_SECRET and _REFRESH_TOKEN: OAuth2
|
|
84
85
|
*
|
|
85
86
|
* Optionally, you can set:
|
|
87
|
+
* - STORAGE_GDRIVE_DRIVE_ID: Shared Drive ID. Required for a service account to upload, since a
|
|
88
|
+
* service account has no storage quota of its own; also becomes the default root.
|
|
86
89
|
* - STORAGE_GDRIVE_ROOT_FOLDER_ID: ID of a folder to use as the root (for isolation)
|
|
87
90
|
*
|
|
88
91
|
* @example
|
|
@@ -109,6 +112,21 @@ let GoogleDriveFileStorage = class GoogleDriveFileStorage extends FileStorageBas
|
|
|
109
112
|
* key file or credentials provided directly in environment variables.
|
|
110
113
|
* Throws an error if neither authentication method is properly configured.
|
|
111
114
|
*/
|
|
115
|
+
/**
|
|
116
|
+
* Builds the Drive client with `supportsAllDrives` / `includeItemsFromAllDrives` as DEFAULT
|
|
117
|
+
* request params (#3847). googleapis applies client-level params to every request, which is what
|
|
118
|
+
* makes Shared Drive support hold across all 25 call sites in this driver instead of being a
|
|
119
|
+
* per-call flag somebody forgets on the next one; endpoints that ignore a param ignore it.
|
|
120
|
+
* Without these, a service account cannot touch a Shared Drive — and Google's quota model means
|
|
121
|
+
* a Shared Drive is the only place a service account CAN write.
|
|
122
|
+
*/
|
|
123
|
+
buildDrive(auth) {
|
|
124
|
+
return google.drive({
|
|
125
|
+
version: 'v3',
|
|
126
|
+
auth,
|
|
127
|
+
params: { supportsAllDrives: true, includeItemsFromAllDrives: true },
|
|
128
|
+
});
|
|
129
|
+
}
|
|
112
130
|
constructor() {
|
|
113
131
|
super();
|
|
114
132
|
/** The name of this storage provider, used in error messages */
|
|
@@ -130,7 +148,7 @@ let GoogleDriveFileStorage = class GoogleDriveFileStorage extends FileStorageBas
|
|
|
130
148
|
keyFile,
|
|
131
149
|
scopes: ['https://www.googleapis.com/auth/drive'],
|
|
132
150
|
});
|
|
133
|
-
this._drive =
|
|
151
|
+
this._drive = this.buildDrive(auth);
|
|
134
152
|
}
|
|
135
153
|
else if (credentials) {
|
|
136
154
|
// Method 2: Using credentials directly (service account)
|
|
@@ -140,28 +158,32 @@ let GoogleDriveFileStorage = class GoogleDriveFileStorage extends FileStorageBas
|
|
|
140
158
|
key: creds.private_key,
|
|
141
159
|
scopes: ['https://www.googleapis.com/auth/drive'],
|
|
142
160
|
});
|
|
143
|
-
this._drive =
|
|
161
|
+
this._drive = this.buildDrive(auth);
|
|
144
162
|
}
|
|
145
163
|
else if (this._clientID && this._clientSecret && this._refreshToken) {
|
|
146
164
|
// Method 3: Using OAuth2 with refresh token
|
|
147
165
|
const auth = new google.auth.OAuth2(this._clientID, this._clientSecret, redirectURI);
|
|
148
166
|
auth.setCredentials({ refresh_token: this._refreshToken });
|
|
149
|
-
this._drive =
|
|
167
|
+
this._drive = this.buildDrive(auth);
|
|
150
168
|
}
|
|
151
169
|
// If no credentials found, _drive will be undefined and initialize() must be called
|
|
152
|
-
// Optionally set a root folder ID to restrict operations
|
|
153
|
-
|
|
170
|
+
// Optionally set a root folder ID to restrict operations. A configured Shared Drive id is the
|
|
171
|
+
// default root — a Shared Drive's id doubles as its root folder id (#3847).
|
|
172
|
+
this._driveId = config?.driveID || env.get('STORAGE_GDRIVE_DRIVE_ID').asString();
|
|
173
|
+
this._rootFolderId = config?.rootFolderID || env.get('STORAGE_GDRIVE_ROOT_FOLDER_ID').asString() || this._driveId;
|
|
154
174
|
}
|
|
155
175
|
/**
|
|
156
176
|
* Checks if Google Drive provider is properly configured.
|
|
157
|
-
* Returns true
|
|
177
|
+
* Returns true when a Drive client exists (service account via key file or credentials JSON, or
|
|
178
|
+
* OAuth2) or all OAuth2 credentials are present. Search indexing and content autotagging skip an
|
|
179
|
+
* account that reports false, so a working service-account client must count (#3847).
|
|
158
180
|
* Logs detailed error messages if configuration is incomplete.
|
|
159
181
|
*/
|
|
160
182
|
get IsConfigured() {
|
|
161
183
|
const hasClientID = !!this._clientID;
|
|
162
184
|
const hasClientSecret = !!this._clientSecret;
|
|
163
185
|
const hasRefreshToken = !!this._refreshToken;
|
|
164
|
-
const isConfigured = hasClientID && hasClientSecret && hasRefreshToken;
|
|
186
|
+
const isConfigured = !!this._drive || (hasClientID && hasClientSecret && hasRefreshToken);
|
|
165
187
|
if (!isConfigured) {
|
|
166
188
|
const missing = [];
|
|
167
189
|
if (!hasClientID)
|
|
@@ -172,7 +194,9 @@ let GoogleDriveFileStorage = class GoogleDriveFileStorage extends FileStorageBas
|
|
|
172
194
|
missing.push('Refresh Token');
|
|
173
195
|
console.error(`❌ Google Drive provider not configured. Missing: ${missing.join(', ')}\n\n` +
|
|
174
196
|
`Configuration Options:\n\n` +
|
|
175
|
-
`
|
|
197
|
+
`Service account: set STORAGE_GDRIVE_KEY_FILE or STORAGE_GDRIVE_CREDENTIALS_JSON, plus\n` +
|
|
198
|
+
`STORAGE_GDRIVE_DRIVE_ID for a Shared Drive (a service account has no storage of its own).\n\n` +
|
|
199
|
+
`Option 1: Environment Variables (OAuth2)\n` +
|
|
176
200
|
` export STORAGE_GDRIVE_CLIENT_ID="..."\n` +
|
|
177
201
|
` export STORAGE_GDRIVE_CLIENT_SECRET="..."\n` +
|
|
178
202
|
` export STORAGE_GDRIVE_REFRESH_TOKEN="..."\n` +
|
|
@@ -222,20 +246,57 @@ let GoogleDriveFileStorage = class GoogleDriveFileStorage extends FileStorageBas
|
|
|
222
246
|
this._clientID = config.clientID || this._clientID;
|
|
223
247
|
this._clientSecret = config.clientSecret || this._clientSecret;
|
|
224
248
|
this._refreshToken = config.refreshToken || this._refreshToken;
|
|
225
|
-
// Update root folder ID if provided
|
|
249
|
+
// Update root folder ID / Shared Drive if provided. A credential record's location replaces the
|
|
250
|
+
// server-wide one from env: a record naming Shared Drive B must navigate B even when
|
|
251
|
+
// STORAGE_GDRIVE_DRIVE_ID or STORAGE_GDRIVE_ROOT_FOLDER_ID points somewhere else, since a root
|
|
252
|
+
// folder in drive A means nothing in drive B. An explicit rootFolderID in the record still wins.
|
|
253
|
+
if (config.driveID) {
|
|
254
|
+
this._driveId = config.driveID;
|
|
255
|
+
}
|
|
226
256
|
if (config.rootFolderID) {
|
|
227
257
|
this._rootFolderId = config.rootFolderID;
|
|
228
258
|
}
|
|
229
|
-
|
|
259
|
+
else if (config.driveID) {
|
|
260
|
+
this._rootFolderId = config.driveID;
|
|
261
|
+
}
|
|
262
|
+
// Reinitialize the client, mirroring the constructor's THREE auth methods (#3847). Before
|
|
263
|
+
// this, only OAuth2 fields were read here, so a database credential carrying service-account
|
|
264
|
+
// material threw — and it threw even when the constructor had already built a working client
|
|
265
|
+
// from env, meaning attaching a credential record BROKE a working driver.
|
|
266
|
+
if (config.keyFile) {
|
|
267
|
+
const auth = new google.auth.GoogleAuth({
|
|
268
|
+
keyFile: config.keyFile,
|
|
269
|
+
scopes: ['https://www.googleapis.com/auth/drive'],
|
|
270
|
+
});
|
|
271
|
+
this._drive = this.buildDrive(auth);
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
if (config.credentialsJSON) {
|
|
275
|
+
const creds = typeof config.credentialsJSON === 'string' ? JSON.parse(config.credentialsJSON) : config.credentialsJSON;
|
|
276
|
+
const auth = new google.auth.JWT({
|
|
277
|
+
email: creds.client_email,
|
|
278
|
+
key: creds.private_key,
|
|
279
|
+
scopes: ['https://www.googleapis.com/auth/drive'],
|
|
280
|
+
});
|
|
281
|
+
this._drive = this.buildDrive(auth);
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
230
284
|
if (this._clientID && this._clientSecret && this._refreshToken) {
|
|
231
285
|
const redirectURI = 'urn:ietf:wg:oauth:2.0:oob';
|
|
232
286
|
const auth = new google.auth.OAuth2(this._clientID, this._clientSecret, redirectURI);
|
|
233
287
|
auth.setCredentials({ refresh_token: this._refreshToken });
|
|
234
|
-
this._drive =
|
|
288
|
+
this._drive = this.buildDrive(auth);
|
|
289
|
+
return;
|
|
235
290
|
}
|
|
236
|
-
|
|
237
|
-
|
|
291
|
+
// No usable credential in the record. If the constructor already built a client (env
|
|
292
|
+
// key-file / credentials-JSON), KEEP IT — a credential record that adds only a root folder or
|
|
293
|
+
// account name must not un-configure a working driver. Throw only when there is nothing at all.
|
|
294
|
+
if (!this._drive) {
|
|
295
|
+
throw new Error('Google Drive storage requires one of: keyFile, credentialsJSON, or clientID+clientSecret+refreshToken.');
|
|
238
296
|
}
|
|
297
|
+
console.warn(`Google Drive account "${config.accountName ?? config.accountId ?? 'unnamed'}": the credential carries no keyFile, ` +
|
|
298
|
+
`credentialsJSON or clientID+clientSecret+refreshToken, so it uses the server's Google Drive client from ` +
|
|
299
|
+
`environment configuration. If the record was meant to authenticate on its own, check its key names.`);
|
|
239
300
|
}
|
|
240
301
|
/**
|
|
241
302
|
* Finds a file or folder by path.
|
|
@@ -1079,12 +1140,15 @@ let GoogleDriveFileStorage = class GoogleDriveFileStorage extends FileStorageBas
|
|
|
1079
1140
|
catch (error) {
|
|
1080
1141
|
// File doesn't exist, will create new
|
|
1081
1142
|
}
|
|
1143
|
+
// googleapis requires media.body to be a STREAM — handed the raw Buffer it dies inside
|
|
1144
|
+
// files.create with `part.body.pipe is not a function`, AFTER auth and folder creation
|
|
1145
|
+
// succeeded, which is why every symptom read as bad storage configuration (#3847).
|
|
1082
1146
|
if (existingFileId) {
|
|
1083
1147
|
// Update existing file
|
|
1084
1148
|
await this._drive.files.update({
|
|
1085
1149
|
fileId: existingFileId,
|
|
1086
1150
|
media: {
|
|
1087
|
-
body: data,
|
|
1151
|
+
body: Readable.from(data),
|
|
1088
1152
|
mimeType: effectiveContentType,
|
|
1089
1153
|
},
|
|
1090
1154
|
});
|
|
@@ -1097,7 +1161,7 @@ let GoogleDriveFileStorage = class GoogleDriveFileStorage extends FileStorageBas
|
|
|
1097
1161
|
parents: [parentId],
|
|
1098
1162
|
},
|
|
1099
1163
|
media: {
|
|
1100
|
-
body: data,
|
|
1164
|
+
body: Readable.from(data),
|
|
1101
1165
|
mimeType: effectiveContentType,
|
|
1102
1166
|
},
|
|
1103
1167
|
fields: 'id',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleDriveFileStorage.js","sourceRoot":"","sources":["../../src/drivers/GoogleDriveFileStorage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GoogleDriveFileStorage.js","sourceRoot":"","sources":["../../src/drivers/GoogleDriveFileStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Readable } from 'stream';
|
|
2
|
+
import { StorageObjectKeyNormalizer } from './ObjectKeys.js';
|
|
2
3
|
/**
|
|
3
4
|
* Represents the payload returned by the CreatePreAuthUploadUrl method.
|
|
4
5
|
* This type contains the necessary information for uploading a file to a storage provider.
|
|
@@ -369,7 +370,7 @@ export interface StorageProviderConfig {
|
|
|
369
370
|
* `driver.GetObject is not a function`. The marker turns an unresolved driver key into an
|
|
370
371
|
* immediate, named failure at the point of resolution.
|
|
371
372
|
*/
|
|
372
|
-
export declare abstract class FileStorageBase {
|
|
373
|
+
export declare abstract class FileStorageBase implements StorageObjectKeyNormalizer {
|
|
373
374
|
/**
|
|
374
375
|
* The name of this storage provider, used in error messages and logging.
|
|
375
376
|
* Each implementation must define this property with a descriptive name.
|
|
@@ -860,6 +861,21 @@ export declare abstract class FileStorageBase {
|
|
|
860
861
|
* @returns A Promise that resolves to a boolean indicating if the directory exists.
|
|
861
862
|
*/
|
|
862
863
|
abstract DirectoryExists(directoryPath: string): Promise<boolean>;
|
|
864
|
+
/**
|
|
865
|
+
* The canonical form of an object key for this storage — what the storage access checks compare when they ask whether
|
|
866
|
+
* an object backs an `MJ: Files` row (see `StorageAccessEvaluator.UnreadableTrackedObjectKeys`). Both the key a client
|
|
867
|
+
* sends and the key a row stores go through this one method, so two spellings this driver resolves to the same object
|
|
868
|
+
* must canonicalize alike.
|
|
869
|
+
*
|
|
870
|
+
* The default ({@link NormalizeStorageObjectKey}) trims the key, collapses runs of `/` and strips leading and
|
|
871
|
+
* trailing `/` — right for every driver whose spellings differ only in slashes. A driver that adds its own root or
|
|
872
|
+
* prefix to SOME keys and not others (S3's key prefix) overrides this to return the key relative to that root.
|
|
873
|
+
* Case is preserved; callers compare case-insensitively.
|
|
874
|
+
*
|
|
875
|
+
* @param objectKey - An object key as a client or an `MJ: Files` row spells it
|
|
876
|
+
* @returns The canonical key: relative to this driver's root, no leading/trailing `/`, no repeated `/`
|
|
877
|
+
*/
|
|
878
|
+
NormalizeObjectKey(objectKey: string): string;
|
|
863
879
|
/**
|
|
864
880
|
* Initialize storage provider with optional configuration.
|
|
865
881
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileStorageBase.d.ts","sourceRoot":"","sources":["../../src/generic/FileStorageBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"FileStorageBase.d.ts","sourceRoot":"","sources":["../../src/generic/FileStorageBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { RequiresSubclass } from '@memberjunction/global';
|
|
8
|
+
import { NormalizeStorageObjectKey } from './ObjectKeys.js';
|
|
8
9
|
/**
|
|
9
10
|
* Builds an HTTP `Range` header value (`bytes=Start-End` or `bytes=Start-`) from a
|
|
10
11
|
* {@link ByteRange}. Shared by streaming-capable drivers so the inclusive-range
|
|
@@ -218,6 +219,23 @@ let FileStorageBase = class FileStorageBase {
|
|
|
218
219
|
GetObjectStream(params) {
|
|
219
220
|
throw new StreamingNotSupportedError(this.providerName);
|
|
220
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* The canonical form of an object key for this storage — what the storage access checks compare when they ask whether
|
|
224
|
+
* an object backs an `MJ: Files` row (see `StorageAccessEvaluator.UnreadableTrackedObjectKeys`). Both the key a client
|
|
225
|
+
* sends and the key a row stores go through this one method, so two spellings this driver resolves to the same object
|
|
226
|
+
* must canonicalize alike.
|
|
227
|
+
*
|
|
228
|
+
* The default ({@link NormalizeStorageObjectKey}) trims the key, collapses runs of `/` and strips leading and
|
|
229
|
+
* trailing `/` — right for every driver whose spellings differ only in slashes. A driver that adds its own root or
|
|
230
|
+
* prefix to SOME keys and not others (S3's key prefix) overrides this to return the key relative to that root.
|
|
231
|
+
* Case is preserved; callers compare case-insensitively.
|
|
232
|
+
*
|
|
233
|
+
* @param objectKey - An object key as a client or an `MJ: Files` row spells it
|
|
234
|
+
* @returns The canonical key: relative to this driver's root, no leading/trailing `/`, no repeated `/`
|
|
235
|
+
*/
|
|
236
|
+
NormalizeObjectKey(objectKey) {
|
|
237
|
+
return NormalizeStorageObjectKey(objectKey);
|
|
238
|
+
}
|
|
221
239
|
/**
|
|
222
240
|
* Initialize storage provider with optional configuration.
|
|
223
241
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileStorageBase.js","sourceRoot":"","sources":["../../src/generic/FileStorageBase.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"FileStorageBase.js","sourceRoot":"","sources":["../../src/generic/FileStorageBase.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAA8B,MAAM,cAAc,CAAC;AA8HrF;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAgB;IACnD,OAAO,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;AAC3F,CAAC;AAiKD;;;;GAIG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD;;;;;OAKG;IACH,YAAY,UAAkB,EAAE,YAAoB;QAClD,KAAK,CAAC,cAAc,UAAU,6BAA6B,YAAY,WAAW,CAAC,CAAC;QACpF,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnD;;;;OAIG;IACH,YAAY,YAAoB;QAC9B,KAAK,CAAC,uDAAuD,YAAY,WAAW,CAAC,CAAC;QACtF,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AA+CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEI,IAAe,eAAe,GAA9B,MAAe,eAAe;IAkBnC;;;OAGG;IACH,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACO,8BAA8B,CAAC,UAAkB;QACzD,MAAM,IAAI,yBAAyB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;OAUG;IACI,OAAO;QACZ,0CAA0C;IAC5C,CAAC;IA4QD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAW,iBAAiB;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;OAQG;IACH,IAAW,qBAAqB;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,IAAW,uBAAuB;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;IACI,eAAe,CAAC,MAA6B;QAClD,MAAM,IAAI,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IA4GD;;;;;;;;;;;;;OAaG;IACI,kBAAkB,CAAC,SAAiB;QACzC,OAAO,yBAAyB,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiEG;IACI,KAAK,CAAC,UAAU,CAAC,MAA8B;QACpD,oEAAoE;QACpE,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;QACzC,CAAC;IACH,CAAC;CA8GF,CAAA;AA3tBqB,eAAe;IADpC,gBAAgB,EAAE;GACG,eAAe,CA2tBpC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Object-key canonicalization and the key-safety rule the storage access checks use.
|
|
3
|
+
*
|
|
4
|
+
* The tracked-file rule ("an object backing an `MJ: Files` row the caller cannot read is refused") compares the key a
|
|
5
|
+
* client sends with the key an `MJ: Files` row stores. Drivers accept several spellings of the same object — S3 adds or
|
|
6
|
+
* keeps its key prefix, Box strips leading and trailing `/`, Dropbox adds a leading `/` — so a raw string comparison would
|
|
7
|
+
* let `/hr/secret.pdf` or `hr/secret.pdf/` through as "untracked" while the driver serves `hr/secret.pdf`. Both sides are
|
|
8
|
+
* therefore put through ONE canonicalizer ({@link StorageObjectKeyNormalizer}, implemented by every driver as
|
|
9
|
+
* `FileStorageBase.NormalizeObjectKey`) and compared case-insensitively.
|
|
10
|
+
*
|
|
11
|
+
* The canonical form is deliberately coarse: when two spellings might name the same object they canonicalize alike. A
|
|
12
|
+
* coarse form can only make the rule refuse more, never less.
|
|
13
|
+
*
|
|
14
|
+
* @module @memberjunction/storage
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* The object key an `MJ: Files` row resolves to: its `ProviderKey`, or its `Name` when `ProviderKey` is null or empty.
|
|
18
|
+
* The one rule every route from a row to its bytes and the tracked-file lookup use, so a row cannot be served under one
|
|
19
|
+
* key and checked under another.
|
|
20
|
+
*/
|
|
21
|
+
export declare function StorageObjectKeyOf(file: {
|
|
22
|
+
ProviderKey?: string | null;
|
|
23
|
+
Name?: string | null;
|
|
24
|
+
}): string;
|
|
25
|
+
/** Turns an object key into the canonical form the storage access checks compare. */
|
|
26
|
+
export interface StorageObjectKeyNormalizer {
|
|
27
|
+
/**
|
|
28
|
+
* The canonical form of `objectKey` for this storage: the object the driver would address, relative to the driver's
|
|
29
|
+
* own root or prefix, with no leading or trailing `/` and no repeated `/`. Case is preserved; callers compare
|
|
30
|
+
* case-insensitively.
|
|
31
|
+
*/
|
|
32
|
+
NormalizeObjectKey(objectKey: string): string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The default canonical form of an object key: trimmed, with runs of `/` collapsed to one and leading and trailing `/`
|
|
36
|
+
* removed. Case is preserved (callers compare case-insensitively).
|
|
37
|
+
*
|
|
38
|
+
* Nothing else is rewritten. A key whose meaning depends on the provider (a backslash, a `.`/`..` segment, a
|
|
39
|
+
* meaning-changing percent encoding) is refused by {@link IsSafeStorageObjectKey} before it is ever compared, so the
|
|
40
|
+
* canonical form never has to guess what a driver would make of it.
|
|
41
|
+
*/
|
|
42
|
+
export declare function NormalizeStorageObjectKey(objectKey: string): string;
|
|
43
|
+
/** The default {@link StorageObjectKeyNormalizer}: {@link NormalizeStorageObjectKey}. */
|
|
44
|
+
export declare const DEFAULT_OBJECT_KEY_NORMALIZER: StorageObjectKeyNormalizer;
|
|
45
|
+
/**
|
|
46
|
+
* Whether an object key is one the storage access checks will compare at all. A key that fails is refused (treated as
|
|
47
|
+
* an object the caller may not read) rather than canonicalized, because its meaning depends on the provider:
|
|
48
|
+
*
|
|
49
|
+
* - a `.` or `..` path segment, including one padded with whitespace or zero-width characters — a hierarchical
|
|
50
|
+
* provider (Box, Dropbox, Google Drive, SharePoint) may resolve it as traversal, so the object served need not be
|
|
51
|
+
* the one compared;
|
|
52
|
+
* - a backslash — some providers and URL layers treat it as a path separator;
|
|
53
|
+
* - a percent-encoded `/`, `\`, `.` or control character (`%2F`, `%5C`, `%2E`, `%00`–`%1F`, `%7F`) — a pre-signed URL
|
|
54
|
+
* carries the key in its path, where the provider decodes it, so `hr%2Fsecret.pdf` would be compared as one segment and
|
|
55
|
+
* served as `hr/secret.pdf`. A literal `%` followed by anything else (`50% off.pdf`, `%20`) is allowed;
|
|
56
|
+
* - a raw control character (including NUL).
|
|
57
|
+
*
|
|
58
|
+
* An empty or whitespace-only key is not unsafe — it names the root, which no `MJ: Files` row tracks.
|
|
59
|
+
*/
|
|
60
|
+
export declare function IsSafeStorageObjectKey(objectKey: string): boolean;
|
|
61
|
+
//# sourceMappingURL=ObjectKeys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectKeys.d.ts","sourceRoot":"","sources":["../../src/generic/ObjectKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,MAAM,CAEtG;AAED,qFAAqF;AACrF,MAAM,WAAW,0BAA0B;IACvC;;;;OAIG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CACjD;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CASnE;AAED,yFAAyF;AACzF,eAAO,MAAM,6BAA6B,EAAE,0BAE3C,CAAC;AAQF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAQjE"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Object-key canonicalization and the key-safety rule the storage access checks use.
|
|
3
|
+
*
|
|
4
|
+
* The tracked-file rule ("an object backing an `MJ: Files` row the caller cannot read is refused") compares the key a
|
|
5
|
+
* client sends with the key an `MJ: Files` row stores. Drivers accept several spellings of the same object — S3 adds or
|
|
6
|
+
* keeps its key prefix, Box strips leading and trailing `/`, Dropbox adds a leading `/` — so a raw string comparison would
|
|
7
|
+
* let `/hr/secret.pdf` or `hr/secret.pdf/` through as "untracked" while the driver serves `hr/secret.pdf`. Both sides are
|
|
8
|
+
* therefore put through ONE canonicalizer ({@link StorageObjectKeyNormalizer}, implemented by every driver as
|
|
9
|
+
* `FileStorageBase.NormalizeObjectKey`) and compared case-insensitively.
|
|
10
|
+
*
|
|
11
|
+
* The canonical form is deliberately coarse: when two spellings might name the same object they canonicalize alike. A
|
|
12
|
+
* coarse form can only make the rule refuse more, never less.
|
|
13
|
+
*
|
|
14
|
+
* @module @memberjunction/storage
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* The object key an `MJ: Files` row resolves to: its `ProviderKey`, or its `Name` when `ProviderKey` is null or empty.
|
|
18
|
+
* The one rule every route from a row to its bytes and the tracked-file lookup use, so a row cannot be served under one
|
|
19
|
+
* key and checked under another.
|
|
20
|
+
*/
|
|
21
|
+
export function StorageObjectKeyOf(file) {
|
|
22
|
+
return file.ProviderKey || file.Name || '';
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The default canonical form of an object key: trimmed, with runs of `/` collapsed to one and leading and trailing `/`
|
|
26
|
+
* removed. Case is preserved (callers compare case-insensitively).
|
|
27
|
+
*
|
|
28
|
+
* Nothing else is rewritten. A key whose meaning depends on the provider (a backslash, a `.`/`..` segment, a
|
|
29
|
+
* meaning-changing percent encoding) is refused by {@link IsSafeStorageObjectKey} before it is ever compared, so the
|
|
30
|
+
* canonical form never has to guess what a driver would make of it.
|
|
31
|
+
*/
|
|
32
|
+
export function NormalizeStorageObjectKey(objectKey) {
|
|
33
|
+
// Split and join rather than regex trimming: dropping empty segments collapses runs of `/` and strips leading and
|
|
34
|
+
// trailing `/` in one linear pass with no backtracking. CodeQL flags a trailing-anchor pattern such as `/\/+$/` on
|
|
35
|
+
// caller input as polynomial (js/polynomial-redos), so this form keeps every pattern out of the path.
|
|
36
|
+
return (objectKey ?? '')
|
|
37
|
+
.trim()
|
|
38
|
+
.split('/')
|
|
39
|
+
.filter(segment => segment.length > 0)
|
|
40
|
+
.join('/');
|
|
41
|
+
}
|
|
42
|
+
/** The default {@link StorageObjectKeyNormalizer}: {@link NormalizeStorageObjectKey}. */
|
|
43
|
+
export const DEFAULT_OBJECT_KEY_NORMALIZER = {
|
|
44
|
+
NormalizeObjectKey: NormalizeStorageObjectKey
|
|
45
|
+
};
|
|
46
|
+
/** Characters whose percent-encoded form a provider or URL layer could decode into a path-changing character. */
|
|
47
|
+
const MEANING_CHANGING_ENCODED = /%(2f|5c|2e|[01][0-9a-f]|7f)/i;
|
|
48
|
+
/** ASCII control characters, including NUL. */
|
|
49
|
+
const CONTROL_CHARACTERS = /[\x00-\x1f\x7f]/;
|
|
50
|
+
/**
|
|
51
|
+
* Whether an object key is one the storage access checks will compare at all. A key that fails is refused (treated as
|
|
52
|
+
* an object the caller may not read) rather than canonicalized, because its meaning depends on the provider:
|
|
53
|
+
*
|
|
54
|
+
* - a `.` or `..` path segment, including one padded with whitespace or zero-width characters — a hierarchical
|
|
55
|
+
* provider (Box, Dropbox, Google Drive, SharePoint) may resolve it as traversal, so the object served need not be
|
|
56
|
+
* the one compared;
|
|
57
|
+
* - a backslash — some providers and URL layers treat it as a path separator;
|
|
58
|
+
* - a percent-encoded `/`, `\`, `.` or control character (`%2F`, `%5C`, `%2E`, `%00`–`%1F`, `%7F`) — a pre-signed URL
|
|
59
|
+
* carries the key in its path, where the provider decodes it, so `hr%2Fsecret.pdf` would be compared as one segment and
|
|
60
|
+
* served as `hr/secret.pdf`. A literal `%` followed by anything else (`50% off.pdf`, `%20`) is allowed;
|
|
61
|
+
* - a raw control character (including NUL).
|
|
62
|
+
*
|
|
63
|
+
* An empty or whitespace-only key is not unsafe — it names the root, which no `MJ: Files` row tracks.
|
|
64
|
+
*/
|
|
65
|
+
export function IsSafeStorageObjectKey(objectKey) {
|
|
66
|
+
if (typeof objectKey !== 'string') {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
if (objectKey.includes('\\') || CONTROL_CHARACTERS.test(objectKey) || MEANING_CHANGING_ENCODED.test(objectKey)) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
return !objectKey.split('/').map(visibleSegment).some(segment => segment === '.' || segment === '..');
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* A path segment as a filesystem would read it: Unicode format characters (`\p{Cf}`: zero-width space, joiners,
|
|
76
|
+
* word joiner, BOM, soft hyphen) removed, then trimmed. Without this, `\u200B..\u200B` would not compare equal to
|
|
77
|
+
* `..` though a driver that drops such characters would resolve it as traversal.
|
|
78
|
+
*/
|
|
79
|
+
function visibleSegment(segment) {
|
|
80
|
+
return segment.replace(/\p{Cf}/gu, '').trim();
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=ObjectKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectKeys.js","sourceRoot":"","sources":["../../src/generic/ObjectKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA2D;IAC1F,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;AAC/C,CAAC;AAYD;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAAiB;IACvD,kHAAkH;IAClH,mHAAmH;IACnH,sGAAsG;IACtG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;SACnB,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;SACrC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,yFAAyF;AACzF,MAAM,CAAC,MAAM,6BAA6B,GAA+B;IACrE,kBAAkB,EAAE,yBAAyB;CAChD,CAAC;AAEF,iHAAiH;AACjH,MAAM,wBAAwB,GAAG,8BAA8B,CAAC;AAEhE,+CAA+C;AAC/C,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAE7C;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACpD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7G,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC;AAC1G,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAClD,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,9 @@ export * from './drivers/SharePointFileStorage.js';
|
|
|
6
6
|
export * from './drivers/DropboxFileStorage.js';
|
|
7
7
|
export * from './drivers/BoxFileStorage.js';
|
|
8
8
|
export * from './generic/FileStorageBase.js';
|
|
9
|
+
export * from './generic/ObjectKeys.js';
|
|
9
10
|
export * from './util.js';
|
|
10
11
|
export * from './config.js';
|
|
11
12
|
export * from './FileStorageEngine.js';
|
|
13
|
+
export * from './StorageAccessEvaluator.js';
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|