Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Azure Storage Files] Bug with getting shared access signature #11505

Closed
1 of 6 tasks
gmantri opened this issue Sep 25, 2020 · 8 comments
Closed
1 of 6 tasks

[Azure Storage Files] Bug with getting shared access signature #11505

gmantri opened this issue Sep 25, 2020 · 8 comments
Assignees
Labels
bug This issue requires a change to an existing behavior in the product in order to be resolved. Client This issue points to a problem in the data-plane of the library. customer-reported Issues that are reported by GitHub users external to the Azure organization. needs-author-feedback Workflow: More information is needed from author to address the issue. no-recent-activity There has been no recent activity on this issue. Storage Storage Service (Queues, Blobs, Files)

Comments

@gmantri
Copy link

gmantri commented Sep 25, 2020

  • Package Name: @azure/storage-file-share
  • Package Version: 12.2.0
  • Operating system: macOS
  • nodejs
    • version: 10.16.3
  • browser
    • name/version:
  • typescript
    • version:
  • Is the bug related to documentation in

Describe the bug

2 Issues actually:

  1. When fetching access policies for a file share that has null value for either the start date or end date results in invalid date for that null value.

  2. Getting a Type Error exception occurs while fetching access policies when an access policy has only defined an identifier and nothing else i.e. null start/end date and no permissions.

TypeError: Cannot read property 'expiresOn' of undefined
    at ShareClient.<anonymous> (ShareClient.ts:993)

The issue is coming from the following lines of code:

      for (const identifier of response) {
        res.signedIdentifiers.push({
          accessPolicy: {
            expiresOn: new Date(identifier.accessPolicy!.expiresOn!),
            permissions: identifier.accessPolicy!.permissions!,
            startsOn: new Date(identifier.accessPolicy!.startsOn!)
          },
          id: identifier.id
        });
      }

Two issues with the code above:

  1. It does not check whether expiresOn and startsOn are defined and not null in accessPolicy. This would cause the 1st issue I mentioned above.

  2. If I create an access policy with just an identifier, then the result will not even have an accessPolicy element. This is causing the 2nd issue.

I looked up code for getAccessPolicy method on QueueClient here: https://github.com/Azure/azure-sdk-for-js/blob/master/sdk/storage/storage-queue/src/QueueClient.ts#L934, and it is implemented correctly.

      for (const identifier of response) {
        let accessPolicy: any = undefined;
        if (identifier.accessPolicy) {
          accessPolicy = {
            permissions: identifier.accessPolicy.permissions
          };

          if (identifier.accessPolicy.expiresOn) {
            accessPolicy.expiresOn = new Date(identifier.accessPolicy.expiresOn);
          }

          if (identifier.accessPolicy.startsOn) {
            accessPolicy.startsOn = new Date(identifier.accessPolicy.startsOn);
          }
        }

        res.signedIdentifiers.push({
          accessPolicy,
          id: identifier.id
        });
      }
@ghost ghost added needs-triage Workflow: This is a new issue that needs to be triaged to the appropriate team. customer-reported Issues that are reported by GitHub users external to the Azure organization. question The issue doesn't require a change to the product in order to be resolved. Most issues start as that labels Sep 25, 2020
@jeremymeng jeremymeng added Client This issue points to a problem in the data-plane of the library. needs-team-attention Workflow: This issue needs attention from Azure service team or SDK team Storage Storage Service (Queues, Blobs, Files) labels Sep 25, 2020
@ghost ghost removed the needs-triage Workflow: This is a new issue that needs to be triaged to the appropriate team. label Sep 25, 2020
@XiaoningLiu XiaoningLiu added bug This issue requires a change to an existing behavior in the product in order to be resolved. and removed needs-team-attention Workflow: This issue needs attention from Azure service team or SDK team labels Sep 27, 2020
@ghost ghost added the needs-team-attention Workflow: This issue needs attention from Azure service team or SDK team label Sep 27, 2020
@XiaoningLiu XiaoningLiu added this to the Backlog milestone Sep 27, 2020
@XiaoningLiu
Copy link
Member

Thanks for reporting! @gmantri Put this into our backlog for following releases. Welcome contribution too and marked with good first issue.

@XiaoningLiu XiaoningLiu added the good first issue This issue tracks work that may be a good starting point for a first-time contributor label Sep 27, 2020
gmantri added a commit to gmantri/azure-sdk-for-js that referenced this issue Sep 28, 2020
@ramya-rao-a ramya-rao-a removed needs-team-attention Workflow: This issue needs attention from Azure service team or SDK team question The issue doesn't require a change to the product in order to be resolved. Most issues start as that labels Sep 30, 2020
ljian3377 added a commit to ljian3377/azure-sdk-for-js that referenced this issue Oct 9, 2020
ljian3377 added a commit that referenced this issue Oct 9, 2020
* temporary fix for issue #11505

* format
ljian3377 added a commit that referenced this issue Oct 13, 2020
* [storage][stg74] swagger update (#11171)

* build:autorest

* f7425b8

* update service and pacakge versions

* queue updateMessage protocol layer breaking change

* createPermissionOperationSpec.isXML=false

* regenerate with 3360920245f8c06e10f5e349ce3dca5e4d10372e

* fix ae-forgotten-export

Co-authored-by: Lin Jian <[email protected]>

* swagger-regenerate: 196d5c1

* smb multi-channel (#11178)

* [Storage] Feature - Recursive ACL (#9689)

* Sdk automation/@Azure arm operationalinsights (#10935)

* Generated from ba891b7274af8cb22ee173e1998b4145d2d8d98b

Adding a point get.

* version 4.0.0

Co-authored-by: SDK Automation <[email protected]>

* Increment package version after release of azure-cosmos (#11311)

* [Text Analytics] Ignore document index when parsing opinion pointers (#11302)

* [Text Analytics] Ignore Document Index

* adding a test

* update tests

* add recordings

* [Text Analytics] Update release date (#11313)

* [Text Analytics] Update release date for 5.1.0-beta.1

* format

* [core-http] Move challenge based auth to core-http (#11226)

* Begin move of challenge-based auth

* Begin move of challenge-based auth

* Remove keyvault-common

* Update paths

* Fixing paths after removing keyvault-common

* fixed bad dist-esm index.js references

* Update paths

* Update docs

* Add mock tests

* Add mock tests

Co-authored-by: Daniel Rodríguez <[email protected]>

* Revert "[core-http] Move challenge based auth to core-http (#11226)" (#11320)

This reverts commit 43033ff.

* [AnomalyDetector] Update AnomalyDetector README (#11110)

* Update AnomalyDetector README

* Update pto beta

* Update changelog

* Address PR comments

* Replaced relative link with absolute links and remove locale (#11317)

Replaced relative link with absolute links and remove locale

* Enable the link check on aggregate-report (#11330)

* Increment package version after release of azure-ai-text-analytics (#11315)

* [Tables] Enable recorded tests in CI (#11238)

* Enable recorded tests in CI

* Update test script

* Add pollyfill

* [Anomaly Detector] Add sample snippet to README (#11335)

* Add samples to readme

* Update changelog date

* [Core-http] Support xml namespaces (#11201)

* Prototype xmlns

* Update prototype

* Additional tests

* Address PR comments

* formatting

* Apply changes to core-client

* Address  comments

* update core-client api-extractor

* use getXmlObjectValue

* Increment package version after release of azure-ai-anomaly-detector (#11340)

* [event-hubs] Update docs to mention the checkpoint store updates made when the subscription is closed. (#11345)

As part of investigating #11316 we found it was non-obvious that we would be using the checkpoint store when closing. 

The reason we use it is when we close the subscription we also mark, in the checkpoint store, that the partitions are abandoned. This lets other consumers more quickly pick up abandoned partitions rather than forcing them to wait for an expiration interval and discover it.

Fixes #11316

* Add testcases for handling odata (#11321)

* Add testcases for handling odata

* Formatting code

* PR Comments

* Minor Formatting

* Update sdk/search/search-documents/src/odata.ts

Co-authored-by: Jeff Fisher <[email protected]>

* Update sdk/search/search-documents/src/odata.ts

Co-authored-by: Jeff Fisher <[email protected]>

Co-authored-by: Jeff Fisher <[email protected]>

* release arm-netapp (#10849)

* release arm-netapp

* Generated from efcb7ecf4722c919d5528c53671b124046badcdb

update netapp readme.java.md

* version change

Co-authored-by: SDK Automation <[email protected]>

* Sdk automation/@Azure arm hybridcompute (#11307)

* Generated from a35b1cd98e20d7c9b3c4fdcb23125b7ea85acca6

add alias for auto_rev_minor_version

* v2.0.0

Co-authored-by: SDK Automation <[email protected]>

* [Event Grid] Remove some 'en-us' from some links (#11185)

* [Identity] Fix broken eslint in the builds (#11354)

* [Identity] Fix broken eslint in the builds

* .eslintignore was being ignored

* Feedback by Deya

* [Abort Controller] Update linting and fix linting errors (#11269)

* update linting and fix linting errors

* update linting scripts

* formatting

* fix linting errors

* fixes

* fix

* run api-extractor

* include the shim files in shipped files

* use the unrolledup type declarations

* do not lint package.json

* still lint package.json

* remove the call to api-extractor from the npm build script

* simplify eslint commands

* only ship src types

* [Identity] Idea for the Device Code Credential Use Console Feature (#11355)

* [Identity] Idea for the Device Code Credential Use Console Feature

* Feedback by Schaab and Vinay

* [Key Vault] Use the swagger generated from the service 7.2-preview (#11370)

* swagger reference to 7.2-preview/keys.json

* generated update

* 7.2 on keys

* 7.2 preview on certs and secrets

* generated files for secrets and certs

* secrets and certs

* sticking the swagger change to a specific commit

* Add placeholder yml file for pipeline generation

* Smoke test failure due to rollup peer dependency error (#11372)

* Change to move @rollup/plugin-json as dev dependency

* Add client libraries for Azure Communication Services (#11385)

* Add Communication service mapping

* Communication - Add code owners and label triggers (#11401)

* Communication - Add code owners and label triggers

* [ESLint Plugin] fix docs link (#11400)

* Increment package version after release of azure-keyvault-admin (#11216)

* Sync eng/common directory with azure-sdk-tools repository for Tools PR 1022 (#11347)

* Disable smoke test for storage-blob-changefeed (#11406)

* [Core paging] Update linting scripts and auto linting (#11274)

* [Core paging] Update linting scripts and auto linting

* formatting changes

* addressing Jeff's comments

* fixes

* turn sideEffects back on

* adding comments to address Ramya's feedback

* a typo

* adding dist-esm/index.js back

* Update sdk/core/core-paging/.eslintrc.json

Co-authored-by: Ramya Rao <[email protected]>

* remove dist-esm/src from files in package.json

Co-authored-by: Ramya Rao <[email protected]>

* fix package.json (#11412)

* [Service Bus] Remove stream-browserify dependency (#11221)

* [Core asynciterator] Update linting scripts and apply auto linting and some formatting (#11272)

* update linting scripts

* edits

* turn off relevant rules and lint package.json back

* adding .eslintrc.json

* [service-bus] Fixing broken option - we renamed it to maxWaitTimeInMs a few previews back. (#11410)

* Communication: fix test-resources config (#11434)

* [core-http] Add NDJSON support (#11325)

* [EventGrid] Add Azure Communication Service Events (#11428)

This change adds typings for the new events sent by the Azure
Communication Services

* Sync eng/common directory with azure-sdk-tools repository for Tools PR 989 (#11214)

* [Cosmos] Adding missing copyright headers (#11449)

* [Service Bus] Type docs fix - Added @internal and @ignore tags for internal methods (#11427)

* logger, isError, toAmqpAnnotatedMessage changed to internal

* SubQueue renamed to _SubQueue and changed to internal for jsdoc

* Revert "SubQueue renamed to _SubQueue and changed to internal for jsdoc"

This reverts commit b97b682.

* [Storage] Recursive ACL swagger transform patch

* [Storage] Add support for recursive ACL

* [Storage] Recording for recursive ACL

* [Storage] Update changelog for recursive acl

* [Storage] Add comments for recursive ACL parameters; Resolve review comments

* Add continueOnFailure option for set AccessControlRecursive methods

* Removed PathSetAccessControlRecursiveMode from public API list

* Update AccessControlChangeFailure to AccessControlChangeError with typical name and message properties

* Resolve build failures

* Resolve build failures

Co-authored-by: changlong-liu <[email protected]>
Co-authored-by: SDK Automation <[email protected]>
Co-authored-by: Azure SDK Bot <[email protected]>
Co-authored-by: Deyaaeldeen Almahallawi <[email protected]>
Co-authored-by: Jonathan Turner <[email protected]>
Co-authored-by: Daniel Rodríguez <[email protected]>
Co-authored-by: Jose Manuel Heredia Hidalgo <[email protected]>
Co-authored-by: Sima Zhu <[email protected]>
Co-authored-by: Richard Park <[email protected]>
Co-authored-by: Sarangan Rajamanickam <[email protected]>
Co-authored-by: Jeff Fisher <[email protected]>
Co-authored-by: colawwj <[email protected]>
Co-authored-by: Matt Ellis <[email protected]>
Co-authored-by: Daniel Rodríguez <[email protected]>
Co-authored-by: Wes Haggard <[email protected]>
Co-authored-by: praveenkuttappan <[email protected]>
Co-authored-by: Dominik <[email protected]>
Co-authored-by: Wes Haggard <[email protected]>
Co-authored-by: Ramya Rao <[email protected]>
Co-authored-by: Jeff Fisher <[email protected]>
Co-authored-by: Mohsin Mehmood <[email protected]>

* lastAccessed in BlobDownloadResponse wrapper

* [storage][stg74] container restore (#11457)

* interface

* includeDeleted

* [storage][stg74] get file range diff (#11455)

* wip

* circular dependency

* move share, dirctory and file clients to the same file

* swagger-regeneration: df297c8

* get file range diff

* nit: PR comments

* [storage][stg74] quick query new output format "arrow" (#11423)

* quick query new outputSerialization "arrow"

* for datalake, and remove preprod

* [storage][stg74] Delegation SAS v2 and Directory SAS (#11395)

* move under sas/

* wip

* wip

* test wip

* autofill directoryDepth

* update allow optional messageText (#11258)

* [storage][stg74] 4TB file for standard account (#11177)

* build:autorest

* update service and pacakge versions

* createPermissionOperationSpec.isXML=false

* test create, resize, uploadRange for 4tb file with a preprod account

* record test then manually remove preprod from recording file, fix documentation

* update comments 1TB -> 4TB

Co-authored-by: Lin Jian <[email protected]>

* add set expiry (#11461)

Co-authored-by: Lin Jian <[email protected]>

* fix merge issue

* Continuation Token wrapped with Error when Recursive Acl call is interrupted (#11716)

* [storage][stg74] address PR comments (#11520)

* wip

* overload SASQueryParameters constructor

* api extract

* Rename leaseTime -> leaseTimeInSeconds

* share lease tests

* container restore test wip

* restore container test fixed

* fix CI

* make options optional and add comments

* [storage][stg74] set file tier (#11735)

* format datalake

* re-generate file with de8a4f0

* add set share tier

* edit import

* [storage] temporary fix for issue #11505 (#11737)

* temporary fix for issue #11505

* format

* update pacakge versions and change log (#11739)

* [storage][stg74] fix ci (#11752)

* use beta

* fix listContainers when include = []

* fix CI

* unskip quick query record & support include-leased for x-ms-delete-snapshots (#11754)

* Resolve CRI failure (#11756)

* fix lease test case

* Record RecAcl (#11765)

* [storage][stg74] test coverage improvement (#11757)

* use preview for blob and use defaultCredential in datalake

* use preview subscription for datalake

* turn on log

* throw when accountName is invalid

* CONTAINER_SOFT_DELETE_

* set cors in service properties

* PREMIUM_FILE_

* blob remove .only

* SOFT_DELETE_ for both blob and share

* unskip a tag case

* unskip all f,t cases in browser

* file use production subscription

* add role for datalakeAccount

* me

* undo datalake roleAssignment

* unskip blob delegation SAS cases via using DefaultCredential

* add blobDataOwnerRoleId

* premiumFileAccountName

* me

* unskip last access tracking case

* me

* delegation sas refactor

* fix CI

* getRangeListDiff .only

* run all cases in file

* skip getRangeListDiff in live tests

* rename and add comments

* last access

* skip LAT

* me

* re-record blob delegation SAS cases

* modify testutils and re-record

* record for browser

* me

* fix CI and unskip cases

* tune setProperties in IE

* remove .only

Co-authored-by: Lin Jian <[email protected]>
Co-authored-by: xiaonlimsft <[email protected]>
Co-authored-by: changlong-liu <[email protected]>
Co-authored-by: SDK Automation <[email protected]>
Co-authored-by: Azure SDK Bot <[email protected]>
Co-authored-by: Deyaaeldeen Almahallawi <[email protected]>
Co-authored-by: Jonathan Turner <[email protected]>
Co-authored-by: Daniel Rodríguez <[email protected]>
Co-authored-by: Jose Manuel Heredia Hidalgo <[email protected]>
Co-authored-by: Sima Zhu <[email protected]>
Co-authored-by: Richard Park <[email protected]>
Co-authored-by: Sarangan Rajamanickam <[email protected]>
Co-authored-by: Jeff Fisher <[email protected]>
Co-authored-by: colawwj <[email protected]>
Co-authored-by: Matt Ellis <[email protected]>
Co-authored-by: Daniel Rodríguez <[email protected]>
Co-authored-by: Wes Haggard <[email protected]>
Co-authored-by: praveenkuttappan <[email protected]>
Co-authored-by: Dominik <[email protected]>
Co-authored-by: Wes Haggard <[email protected]>
Co-authored-by: Ramya Rao <[email protected]>
Co-authored-by: Jeff Fisher <[email protected]>
Co-authored-by: Mohsin Mehmood <[email protected]>
@ljian3377
Copy link
Member

The temporary fix now is available in @azure/[email protected].

@ljian3377 ljian3377 removed the good first issue This issue tracks work that may be a good starting point for a first-time contributor label Oct 14, 2020
@ljian3377 ljian3377 assigned ljian3377 and unassigned XiaoningLiu Oct 21, 2020
@ljian3377 ljian3377 added the needs-author-feedback Workflow: More information is needed from author to address the issue. label Oct 22, 2020
@ljian3377
Copy link
Member

Does the fix solve your problem? @gmantri

@gmantri
Copy link
Author

gmantri commented Oct 22, 2020

@ljian3377 Thanks for following up. Unfortunately I haven't had the opportunity to try it out yet. I noticed that you made a beta release for this. Can you tell me an ETA for a general release? Considering we're using all features of Azure Storage in our application, I would rather not take a dependency on a beta version. I will wait for a general release of the next version of SDK. Thanks.

@ghost ghost added needs-team-attention Workflow: This issue needs attention from Azure service team or SDK team and removed needs-author-feedback Workflow: More information is needed from author to address the issue. labels Oct 22, 2020
@ljian3377
Copy link
Member

The next GA release would be in the early November.

@ljian3377 ljian3377 modified the milestones: Backlog, [2020] November Oct 22, 2020
@gmantri
Copy link
Author

gmantri commented Oct 22, 2020

Thanks @ljian3377. I will wait till then. Thank you for your prompt response. It is very much appreciated.

@ljian3377
Copy link
Member

The fix is now available in @azure/[email protected].

@ljian3377 ljian3377 added needs-author-feedback Workflow: More information is needed from author to address the issue. and removed needs-team-attention Workflow: This issue needs attention from Azure service team or SDK team labels Nov 11, 2020
@ghost ghost added the no-recent-activity There has been no recent activity on this issue. label Nov 18, 2020
@ghost
Copy link

ghost commented Nov 18, 2020

Hi, we're sending this friendly reminder because we haven't heard back from you in a while. We need more information about this issue to help address it. Please be sure to give us your input within the next 7 days. If we don't hear back from you within 14 days of this comment the issue will be automatically closed. Thank you!

@github-actions github-actions bot locked and limited conversation to collaborators Apr 12, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug This issue requires a change to an existing behavior in the product in order to be resolved. Client This issue points to a problem in the data-plane of the library. customer-reported Issues that are reported by GitHub users external to the Azure organization. needs-author-feedback Workflow: More information is needed from author to address the issue. no-recent-activity There has been no recent activity on this issue. Storage Storage Service (Queues, Blobs, Files)
Projects
None yet
Development

No branches or pull requests

5 participants