Skip to content

Commit

Permalink
"Update UpdateEntity and DeleteEntity to throw InvalidInput error for…
Browse files Browse the repository at this point in the history
… Malformed Etag" (#2062)

* "Update, Delete and Merge entities throw InvalidInput error for Malformed Etag"

* Address comments

* Address comments

* Minor correction

* Fix build failure

* Moving new tests to bottom of file

* "Update, Delete and Merge entities throw InvalidInput error for Malformed Etag"

* Address comments

* Address comments

* Minor correction

* Fix build failure

* Moving new tests to bottom of file

* "Update, Delete and Merge entities throw InvalidInput error for Malformed Etag"

* Address comments

* Address comments

* Minor correction

* Fix build failure

* Moving new tests to bottom of file

* Update changeLog with fix information

* Update version to 3.25.0 (#2063)

* Bump tedious from 16.2.0 to 16.4.0 (#2080)

Bumps [tedious](https://github.com/tediousjs/tedious) from 16.2.0 to 16.4.0.
- [Release notes](https://github.com/tediousjs/tedious/releases)
- [Commits](tediousjs/tedious@v16.2.0...v16.4.0)

---
updated-dependencies:
- dependency-name: tedious
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump eslint from 8.45.0 to 8.46.0 (#2081)

Bumps [eslint](https://github.com/eslint/eslint) from 8.45.0 to 8.46.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](eslint/eslint@v8.45.0...v8.46.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump xml2js from 0.6.0 to 0.6.2 (#2075)

Bumps [xml2js](https://github.com/Leonidas-from-XIV/node-xml2js) from 0.6.0 to 0.6.2.
- [Commits](Leonidas-from-XIV/node-xml2js@0.6.0...0.6.2)

---
updated-dependencies:
- dependency-name: xml2js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add requestId to appendBlock (#2074)

Add missing requestId to the appendBlock operation of an append blob.

Fixes #631.

* Bump tslib from 2.6.0 to 2.6.1 (#2071)

Bumps [tslib](https://github.com/Microsoft/tslib) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/Microsoft/tslib/releases)
- [Commits](microsoft/tslib@2.6.0...v2.6.1)

---
updated-dependencies:
- dependency-name: tslib
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: Resolve issues with datetime comparisons in scenarios where microsecond precision is provided in the underlying value. (#2077)

* fix: Resolve issues with datetime comparisons in scenarios where microsecond precision is provided in the underlying value.

Fixes Filtering by Dates with Table Service no longer working in 3.25.0 #2069

* doc: Update changelog

* fix: Ensure that we only match exact GUIDs for the legacy comparison model

* fix : Resolve issues with empty partition key query not returning anything (#2079)

* Adding all of the code to correctly remove any entities with non populated fields when doing a query on said field. This includes the tests, as well as a reproduction for the current issue

* The current check for partition key was using !! which for an empty string in JS resolve to false, causing the query context to think this was a table instead of an entity. Instead check for the existence of the field

* Adding to the changelog

* Addressing PR comment and removing unecessary !! symbols

---------

Co-authored-by: Garrett Baski <[email protected]>
Co-authored-by: Wei Wei <[email protected]>

* Bump version for hot fix (#2085)

* Bump @azure/core-auth from 1.4.0 to 1.5.0 (#2092)

Bumps [@azure/core-auth](https://github.com/Azure/azure-sdk-for-js) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/Azure/azure-sdk-for-js/releases)
- [Changelog](https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/Changelog-for-next-generation.md)
- [Commits](https://github.com/Azure/azure-sdk-for-js/compare/@azure/core-auth_1.4.0...@azure/core-auth_1.5.0)

---
updated-dependencies:
- dependency-name: "@azure/core-auth"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @azure/core-rest-pipeline from 1.11.0 to 1.12.0 (#2093)

Bumps [@azure/core-rest-pipeline](https://github.com/Azure/azure-sdk-for-js) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/Azure/azure-sdk-for-js/releases)
- [Changelog](https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/Changelog-for-next-generation.md)
- [Commits](https://github.com/Azure/azure-sdk-for-js/compare/@azure/core-rest-pipeline_1.11.0...@azure/core-rest-pipeline_1.12.0)

---
updated-dependencies:
- dependency-name: "@azure/core-rest-pipeline"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump cross-env from 6.0.3 to 7.0.3 (#2094)

Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 6.0.3 to 7.0.3.
- [Release notes](https://github.com/kentcdodds/cross-env/releases)
- [Changelog](https://github.com/kentcdodds/cross-env/blob/master/CHANGELOG.md)
- [Commits](kentcdodds/cross-env@v6.0.3...v7.0.3)

---
updated-dependencies:
- dependency-name: cross-env
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @types/validator from 13.7.17 to 13.11.1 (#2091)

Bumps [@types/validator](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/validator) from 13.7.17 to 13.11.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/validator)

---
updated-dependencies:
- dependency-name: "@types/validator"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump jsonwebtoken and @types/jsonwebtoken (#2098)

Bumps [jsonwebtoken](https://github.com/auth0/node-jsonwebtoken) and [@types/jsonwebtoken](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jsonwebtoken). These dependencies needed to be updated together.

Updates `jsonwebtoken` from 9.0.0 to 9.0.1
- [Changelog](https://github.com/auth0/node-jsonwebtoken/blob/master/CHANGELOG.md)
- [Commits](auth0/node-jsonwebtoken@v9.0.0...v9.0.1)

Updates `@types/jsonwebtoken` from 9.0.1 to 9.0.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jsonwebtoken)

---
updated-dependencies:
- dependency-name: jsonwebtoken
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: "@types/jsonwebtoken"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump prettier from 3.0.0 to 3.0.1 (#2097)

Bumps [prettier](https://github.com/prettier/prettier) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.0.0...3.0.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump mysql2 from 3.5.2 to 3.6.0 (#2096)

Bumps [mysql2](https://github.com/sidorares/node-mysql2) from 3.5.2 to 3.6.0.
- [Release notes](https://github.com/sidorares/node-mysql2/releases)
- [Changelog](https://github.com/sidorares/node-mysql2/blob/master/Changelog.md)
- [Commits](sidorares/node-mysql2@v3.5.2...v3.6.0)

---
updated-dependencies:
- dependency-name: mysql2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @types/bluebird from 3.5.37 to 3.5.38 (#2105)

Bumps [@types/bluebird](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bluebird) from 3.5.37 to 3.5.38.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/bluebird)

---
updated-dependencies:
- dependency-name: "@types/bluebird"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @types/vscode from 1.80.0 to 1.81.0 (#2101)

Bumps [@types/vscode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/vscode) from 1.80.0 to 1.81.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/vscode)

---
updated-dependencies:
- dependency-name: "@types/vscode"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump rcedit from 3.0.1 to 3.1.0 (#2103)

Bumps [rcedit](https://github.com/electron/node-rcedit) from 3.0.1 to 3.1.0.
- [Release notes](https://github.com/electron/node-rcedit/releases)
- [Changelog](https://github.com/electron/node-rcedit/blob/master/.releaserc.json)
- [Commits](electron/node-rcedit@v3.0.1...v3.1.0)

---
updated-dependencies:
- dependency-name: rcedit
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix issue #2061, #2064, #2083 (#2087)

* Fix 2061 & 2083

* fix issue #2064

* Add test cases and change log

---------

Co-authored-by: EmmaZhu <[email protected]>

* Updated examples of setting Customized Storage Accounts & Keys in enviroment varialbe (#2029)

* Bump prettier from 3.0.1 to 3.0.2 (#2110)

Bumps [prettier](https://github.com/prettier/prettier) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.0.1...3.0.2)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump eslint from 8.46.0 to 8.47.0 (#2108)

Bumps [eslint](https://github.com/eslint/eslint) from 8.46.0 to 8.47.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](eslint/eslint@v8.46.0...v8.47.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump lint-staged from 13.2.3 to 14.0.0 (#2106)

Bumps [lint-staged](https://github.com/okonet/lint-staged) from 13.2.3 to 14.0.0.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](lint-staged/lint-staged@v13.2.3...v14.0.0)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump service version to 2023-08-03 (#2111)

* Bump azure-storage from 2.10.6 to 2.10.7 (#2117)

Bumps [azure-storage](https://github.com/Azure/azure-storage-node) from 2.10.6 to 2.10.7.
- [Release notes](https://github.com/Azure/azure-storage-node/releases)
- [Changelog](https://github.com/Azure/azure-storage-node/blob/master/ChangeLog.md)
- [Commits](https://github.com/Azure/azure-storage-node/commits)

---
updated-dependencies:
- dependency-name: azure-storage
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fetch latest from main and updated changeLog file accordingly

* "Move change to Upcoming release header"

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Wei Wei <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: James Tomlinson <[email protected]>
Co-authored-by: Benjamin Pannell <[email protected]>
Co-authored-by: Garrett Baski <[email protected]>
Co-authored-by: Garrett Baski <[email protected]>
Co-authored-by: EmmaZhu-MSFT <[email protected]>
  • Loading branch information
8 people authored Aug 21, 2023
1 parent 005a3d1 commit fb3e85a
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 2 deletions.
3 changes: 3 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
## Upcoming Release

Table:
- Fixed the errorCode returned, when malformed Etag is provided for table Update/Delete calls. (issue #2013)

## 2023.08 Version 3.26.0

General:
Expand Down
4 changes: 2 additions & 2 deletions src/table/handlers/TableHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ export default class TableHandler extends BaseHandler implements ITableHandler {
}
if (options?.ifMatch && options.ifMatch !== "*") {
if (isEtagValid(options.ifMatch)) {
throw StorageErrorFactory.getInvalidOperation(context);
throw StorageErrorFactory.getInvalidInput(context);
}
}
// check that key properties are valid
Expand Down Expand Up @@ -544,7 +544,7 @@ export default class TableHandler extends BaseHandler implements ITableHandler {
throw StorageErrorFactory.getPreconditionFailed(context);
}
if (ifMatch !== "*" && isEtagValid(ifMatch)) {
throw StorageErrorFactory.getInvalidOperation(context);
throw StorageErrorFactory.getInvalidInput(context);
}
// currently the props are not coming through as args, so we take them from the table context
await this.metadataStore.deleteTableEntity(
Expand Down
39 changes: 39 additions & 0 deletions tests/table/apis/table.entity.issues.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
TableEntityResult
} from "@azure/data-tables";
import { configLogger } from "../../../src/common/Logger";
import StorageError from "../../../src/table/errors/StorageError";
import TableServer from "../../../src/table/TableServer";
import { getUniqueName } from "../../testutils";
import {
Expand Down Expand Up @@ -416,4 +417,42 @@ describe("table Entity APIs test : Issues", () => {

await tableClient.deleteTable();
});

//from issue #2013
it("Malformed Etag when sent as input throws InvalidInput for table operations, ", async() => {
const partitionKey = createUniquePartitionKey("𤭢PK1");
const malformedEtag = "MalformedEtag";
const rowKey = "𐐷RK1"
const tableClient = createAzureDataTablesClient(
testLocalAzuriteInstance,
tableName
);

await tableClient.createTable();
await tableClient.createEntity({
partitionKey: partitionKey,
rowKey: "𐐷RK1"
});

tableClient.deleteEntity(
partitionKey,
rowKey,
{
etag: malformedEtag
}
).catch((reason) => {
assert.strictEqual(reason.details.errorCode, "InvalidInput");
assert.strictEqual(reason.statusCode, 400);
});

tableClient.updateEntity({
partitionKey: partitionKey,
rowKey: rowKey,
ifMatch: malformedEtag
}).catch((reason) => {
const storageError = reason as StorageError;
assert.strictEqual(storageError.statusCode, "InvalidInput");
assert.strictEqual(storageError.storageErrorCode, 400);
});
});
});

0 comments on commit fb3e85a

Please sign in to comment.