Skip to content

Commit

Permalink
[storage] port file OAuth and trailing dots support from storage/stab…
Browse files Browse the repository at this point in the history
…le branch (#26318)

Port PR #25005

- port code
- port tests
- add recordings for trailing dots tests
- add recordings for OAuth tests
  • Loading branch information
jeremymeng authored Jul 21, 2023
1 parent 195479f commit 80c93bc
Show file tree
Hide file tree
Showing 23 changed files with 3,062 additions and 105 deletions.
2 changes: 1 addition & 1 deletion sdk/storage/storage-file-share/assets.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"AssetsRepo": "Azure/azure-sdk-assets",
"AssetsRepoPrefixPath": "js",
"TagPrefix": "js/storage/storage-file-share",
"Tag": "js/storage/storage-file-share_cc9d0fc982"
"Tag": "js/storage/storage-file-share_f9551b5b06"
}
1 change: 1 addition & 0 deletions sdk/storage/storage-file-share/karma.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ module.exports = function (config) {
envPreprocessor: [
"ACCOUNT_NAME",
"ACCOUNT_SAS",
"ACCOUNT_TOKEN",
"SOFT_DELETE_ACCOUNT_NAME",
"SOFT_DELETE_ACCOUNT_SAS",
"PREMIUM_FILE_ACCOUNT_NAME",
Expand Down
1 change: 1 addition & 0 deletions sdk/storage/storage-file-share/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@
"@azure/storage-blob": "^12.20.0",
"@azure/dev-tool": "^1.0.0",
"@azure/eslint-plugin-azure-sdk": "^3.0.0",
"@azure/identity": "^3.0.0",
"@azure/test-utils": "^1.0.0",
"@azure-tools/test-credential": "^1.0.0",
"@azure-tools/test-recorder": "^3.0.0",
Expand Down
44 changes: 34 additions & 10 deletions sdk/storage/storage-file-share/review/storage-file-share.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -591,6 +591,8 @@ export interface FileDownloadHeaders {

// @public
export interface FileDownloadOptionalParams extends coreClient.OperationOptions {
allowTrailingDot?: boolean;
fileRequestIntent?: ShareTokenIntent;
leaseAccessConditions?: LeaseAccessConditions;
range?: string;
rangeGetContentMD5?: boolean;
Expand Down Expand Up @@ -998,6 +1000,8 @@ export interface FileUploadRangeFromURLHeaders {

// @public
export interface FileUploadRangeFromURLOptionalParams extends coreClient.OperationOptions {
allowSourceTrailingDot?: boolean;
allowTrailingDot?: boolean;
copySourceAuthorization?: string;
fileLastWrittenMode?: FileLastWrittenMode;
leaseAccessConditions?: LeaseAccessConditions;
Expand Down Expand Up @@ -1095,6 +1099,12 @@ export interface HttpResponse {
// @public
export function isPipelineLike(pipeline: unknown): pipeline is PipelineLike;

// @public
export enum KnownShareTokenIntent {
// (undocumented)
Backup = "backup"
}

// @public
export interface LeaseAccessConditions {
leaseId?: string;
Expand Down Expand Up @@ -1407,9 +1417,10 @@ export type ShareAccessTier = "TransactionOptimized" | "Hot" | "Cool";
//
// @public
export class ShareClient extends StorageClient {
constructor(connectionString: string, name: string, options?: StoragePipelineOptions);
constructor(url: string, credential?: StorageSharedKeyCredential | AnonymousCredential, options?: StoragePipelineOptions);
constructor(url: string, pipeline: Pipeline);
constructor(connectionString: string, name: string, options?: ShareClientOptions);
constructor(url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: ShareClientOptions);
constructor(url: string, credential?: StorageSharedKeyCredential | AnonymousCredential, options?: ShareClientOptions);
constructor(url: string, pipeline: Pipeline, options?: ShareClientConfig);
create(options?: ShareCreateOptions): Promise<ShareCreateResponse>;
createDirectory(directoryName: string, options?: DirectoryCreateOptions): Promise<{
directoryClient: ShareDirectoryClient;
Expand Down Expand Up @@ -1443,6 +1454,16 @@ export class ShareClient extends StorageClient {
withSnapshot(snapshot: string): ShareClient;
}

// @public (undocumented)
export interface ShareClientConfig {
allowSourceTrailingDot?: boolean;
allowTrailingDot?: boolean;
fileRequestIntent?: ShareTokenIntent;
}

// @public (undocumented)
export type ShareClientOptions = StoragePipelineOptions & ShareClientConfig;

// @public
export interface ShareCreateHeaders {
date?: Date;
Expand Down Expand Up @@ -1537,8 +1558,8 @@ export type ShareDeleteResponse = WithResponse<ShareDeleteHeaders, ShareDeleteHe

// @public
export class ShareDirectoryClient extends StorageClient {
constructor(url: string, credential?: AnonymousCredential | StorageSharedKeyCredential, options?: StoragePipelineOptions);
constructor(url: string, pipeline: Pipeline);
constructor(url: string, credential?: AnonymousCredential | StorageSharedKeyCredential | TokenCredential, options?: ShareClientOptions);
constructor(url: string, pipeline: Pipeline, options?: ShareClientConfig);
create(options?: DirectoryCreateOptions): Promise<DirectoryCreateResponse>;
createFile(fileName: string, size: number, options?: FileCreateOptions): Promise<{
fileClient: ShareFileClient;
Expand Down Expand Up @@ -1584,8 +1605,8 @@ export interface ShareExistsOptions extends CommonOptions {

// @public
export class ShareFileClient extends StorageClient {
constructor(url: string, credential?: AnonymousCredential | StorageSharedKeyCredential, options?: StoragePipelineOptions);
constructor(url: string, pipeline: Pipeline);
constructor(url: string, credential?: AnonymousCredential | StorageSharedKeyCredential | TokenCredential, options?: ShareClientOptions);
constructor(url: string, pipeline: Pipeline, options?: ShareClientConfig);
abortCopyFromURL(copyId: string, options?: FileAbortCopyFromURLOptions): Promise<FileAbortCopyResponse>;
clearRange(offset: number, contentLength: number, options?: FileClearRangeOptions): Promise<FileUploadRangeResponse>;
create(size: number, options?: FileCreateOptions): Promise<FileCreateResponse>;
Expand Down Expand Up @@ -1861,14 +1882,14 @@ export class ShareSASPermissions {

// @public
export class ShareServiceClient extends StorageClient {
constructor(url: string, credential?: AnonymousCredential | StorageSharedKeyCredential, options?: StoragePipelineOptions);
constructor(url: string, pipeline: Pipeline);
constructor(url: string, credential?: AnonymousCredential | StorageSharedKeyCredential | TokenCredential, options?: ShareClientOptions);
constructor(url: string, pipeline: Pipeline, options?: ShareClientOptions);
createShare(shareName: string, options?: ShareCreateOptions): Promise<{
shareCreateResponse: ShareCreateResponse;
shareClient: ShareClient;
}>;
deleteShare(shareName: string, options?: ShareDeleteMethodOptions): Promise<ShareDeleteResponse>;
static fromConnectionString(connectionString: string, options?: StoragePipelineOptions): ShareServiceClient;
static fromConnectionString(connectionString: string, options?: ShareClientOptions): ShareServiceClient;
generateAccountSasUrl(expiresOn?: Date, permissions?: AccountSASPermissions, resourceTypes?: string, options?: ServiceGenerateAccountSasUrlOptions): string;
getProperties(options?: ServiceGetPropertiesOptions): Promise<ServiceGetPropertiesResponse>;
getShareClient(shareName: string): ShareClient;
Expand Down Expand Up @@ -1959,6 +1980,9 @@ export interface ShareStats {
shareUsageBytes: number;
}

// @public
export type ShareTokenIntent = string;

// @public
export interface SignedIdentifier {
accessPolicy: {
Expand Down
Loading

0 comments on commit 80c93bc

Please sign in to comment.