src/blob/persistence/SqlBlobMetadataStore.ts (23 lines): - line 191: // TODO: Confirm max length of metadata pairs - line 340: // TODO: Check max block name length - line 372: // TODO: sync() is only for development purpose, use migration for production - line 392: // TODO: Implement cleanup in database - line 649: // TODO: GC blobs under deleting status - line 663: // TODO: GC blocks under deleting status - line 947: // TODO: Filter out unnecessary fields in select query - line 1638: ? this.convertDbModelToBlobModel(blobFindResult) // TODO: Reduce duplicated convert - line 1816: // TODO: Return blobCommittedBlockCount for append blob - line 1866: ? this.convertDbModelToBlobModel(blobFindResult) // TODO: Reduce double convert - line 1929: isCommitted: true // TODO: Support deleting uncommitted block blob - line 1938: ? this.convertDbModelToBlobModel(blobFindResult) // TODO: Reduce double convert - line 2113: ? this.convertDbModelToBlobModel(blobFindResult) // TODO: Reduce double convert - line 2189: ? this.convertDbModelToBlobModel(blobFindResult) // TODO: Reduce double convert - line 2265: ? this.convertDbModelToBlobModel(blobFindResult) // TODO: Reduce double convert - line 2321: ? this.convertDbModelToBlobModel(blobFindResult) // TODO: Reduce double convert - line 2377: ? this.convertDbModelToBlobModel(blobFindResult) // TODO: Reduce double convert - line 2434: ? this.convertDbModelToBlobModel(blobFindResult) // TODO: Reduce double convert - line 2490: ? this.convertDbModelToBlobModel(blobFindResult) // TODO: Reduce double convert - line 2823: // TODO: check blob is not block blob with snapshot, throw StorageErrorFactory.getBlobSnapshotsPresent_hassnapshot() - line 3022: // TODO: Decouple deserializer - line 3406: leaseState: Models.LeaseStateType.Available, // TODO: Lease state & status should be undefined for snapshots - line 3407: leaseStatus: Models.LeaseStatusType.Unlocked // TODO: Lease state & status should be undefined for snapshots src/blob/handlers/BlockBlobHandler.ts (10 lines): - line 36: // TODO: Check Lease status, and set to available if it's expired, see sample in BlobHandler.setMetadata() - line 140: // TODO: Need a lock for multi keys including containerName and blobName - line 141: // TODO: Provide a specified function. - line 204: // TODO: Confirm error code - line 248: // TODO: Verify it. - line 257: contentMD5: undefined, // TODO: Block content MD5 - line 316: // TODO: Should make these fields explicit for parseXML method - line 317: // TODO: What happens when committedBlocks and uncommittedBlocks contains same block ID? - line 421: // TODO: Create uncommitted blockblob when stage block - line 422: // TODO: Conditional headers support? src/blob/authentication/OperationBlobSASPermission.ts (10 lines): - line 136: new OperationBlobSASPermission(BlobSASPermission.Write) // TODO: Not sure - line 176: // TODO: When destination blob doesn't exist, needs create permission - line 187: // TODO: When destination blob doesn't exist, needs create permission - line 194: new OperationBlobSASPermission(BlobSASPermission.Write) // TODO: Not sure - line 206: // TODO: When destination blob doesn't exist, needs create permission - line 243: // TODO: When destination blob doesn't exist, needs create permission - line 256: // TODO: When destination blob doesn't exist, needs create permission - line 402: new OperationBlobSASPermission(BlobSASPermission.Write) // TODO: Not sure - line 471: // TODO: When destination blob doesn't exist, needs create permission - line 507: // TODO: Create a new blob must be write src/blob/authentication/PublicAccessAuthenticator.ts (7 lines): - line 17: Operation.PageBlob_GetPageRanges, // TODO: Not sure - line 18: Operation.PageBlob_GetPageRangesDiff, // TODO: Not sure - line 19: Operation.BlockBlob_GetBlockList // TODO: Not sure - line 25: Operation.PageBlob_GetPageRanges, // TODO: Not sure - line 26: Operation.PageBlob_GetPageRangesDiff, // TODO: Not sure - line 27: Operation.BlockBlob_GetBlockList // TODO: Not sure - line 123: // TODO: Make validate() return values into 3 candidates (true, false, and error thrown) src/blob/persistence/LokiBlobMetadataStore.ts (5 lines): - line 236: * TODO: Account's service property should be created when storage account is created or metadata - line 2278: // TODO: check blob is not block blob with snapshot, throw StorageErrorFactory.getBlobSnapshotsPresent_hassnapshot() - line 2839: // TODO: Check other blob update operations need lease reset or not - line 3388: leaseState: Models.LeaseStateType.Available, // TODO: Lease state & status should be undefined for snapshots - line 3389: leaseStatus: Models.LeaseStatusType.Unlocked // TODO: Lease state & status should be undefined for snapshots src/blob/authentication/IBlobSASSignatureValues.ts (5 lines): - line 326: // TODO: Check whether validating the snapshot is necessary. - line 347: blobSASSignatureValues.identifier, // TODO: ? blobSASSignatureValues.identifier : "", - line 399: // TODO: Check whether validating the snapshot is necessary. - line 420: blobSASSignatureValues.identifier, // TODO: ? blobSASSignatureValues.identifier : "", - line 488: blobSASSignatureValues.identifier, // TODO: ? blobSASSignatureValues.identifier : "", src/queue/authentication/QueueSASAuthenticator.ts (4 lines): - line 61: // TODO: Make following async - line 177: // TODO: Validate permissions from ACL identifier by extract permissions, start time and expiry time from ACL - line 178: // TODO: Set ACL without given start time. - line 352: // TODO: Emulator doesn't validate IP Address src/table/authentication/TableSASAuthenticator.ts (4 lines): - line 62: // TODO: Make following async - line 182: // TODO: Validate permissions from ACL identifier by extract permissions, start time and expiry time from ACL - line 277: // TODO: Handle enforced response headers defined in table service SAS - line 360: // TODO: Emulator doesn't validate IP Address src/table/TableRequestListenerFactory.ts (4 lines): - line 53: // TODO: Workarounds for generated specification isXML issue. Ideally should fix in generator. - line 71: // TODO: MERGE verbs is not supported by auto generator yet, - line 82: // TODO: Override Query Table JSON response element value - line 176: // TODO: Should support OPTIONS in swagger and autorest, then this handling can be moved to ServiceHandler. src/blob/persistence/IBlobMetadataStore.ts (4 lines): - line 210: * TODO: Integrate cache layer to cache account, container & blob metadata. - line 223: * TODO: Account's service property should be created when storage account is created or metadata - line 302: * TODO: Make sure all metadata interface implementation follow up above assumption. - line 303: * TODO: GC for async container deletion. src/blob/authentication/BlobSASAuthenticator.ts (4 lines): - line 71: // TODO: Make following async - line 304: // TODO: Validate permissions from ACL identifier by extract permissions, start time and expiry time from ACL - line 450: // TODO: Handle enforced response headers defined in blob service SAS - line 555: // TODO: Emulator doesn't validate IP Address src/blob/handlers/PageBlobHandler.ts (4 lines): - line 131: // TODO: May support setting this part for a premium storage account. - line 134: // : Models.AccessTier.P4, // TODO: Infer tier from size - line 143: // TODO: What's happens when create page blob right before commit block list? Or should we lock - line 232: // TODO: Confirm status code src/table/handlers/TableHandler.ts (4 lines): - line 52: * TODO: - line 177: // TODO: Filter odata types per accept settings - line 360: // TODO: Create data structures to hold entity properties and support serialize, merge, deserialize, filter - line 1001: // TODO: Get protocol, host and port from Azurite server instance src/blob/handlers/BlobHandler.ts (3 lines): - line 124: // TODO: Create get metadata specific request in swagger - line 644: // TODO: Check dest Lease status, and set to available if it's expired, see sample in BlobHandler.setMetadata() - line 843: // TODO: Check dest Lease status, and set to available if it's expired, see sample in BlobHandler.setMetadata() src/table/authentication/ITableSASSignatureValues.ts (3 lines): - line 147: // TODO: Check whether validating the snapshot is necessary. - line 161: tableSASSignatureValues.identifier, // TODO: ? tableSASSignatureValues.identifier : "", - line 221: tableSASSignatureValues.identifier, // TODO: ? tableSASSignatureValues.identifier : "", src/blob/handlers/ContainerHandler.ts (3 lines): - line 165: // TODO: Mark container as being deleted status, then (mark) delete all blobs async - line 274: // TODO: Need fix generator code since the output containerAcl can't be serialized correctly - line 737: // TODO: Need update list out blobs lease properties with BlobHandler.updateLeaseAttributes() src/queue/authentication/QueueSharedKeyAuthenticator.ts (3 lines): - line 39: // TODO: Make following async - line 250: // TODO: doc - line 308: // TODO: DOC src/table/authentication/OperationAccountSASPermission.ts (3 lines): - line 56: // TODO: Check all required operations - line 161: // TODO do we need to specify InsertOrMergeEntity? - line 162: // TODO do we need to specify InsertOrUpdateEntity src/common/persistence/FSExtentStore.ts (3 lines): - line 150: // TODO: Find out why sometimes it throws no permission error - line 443: // TODO: What happens when count exceeds merged payload length? - line 623: // TODO: Use map instead of array to quick check src/blob/BlobServerFactory.ts (3 lines): - line 21: // TODO: Check it's in Visual Studio Code environment or not - line 40: // TODO: Check we need to create blob server against SQL or Loki - line 98: // TODO: Add BlobServer construction in VSC src/blob/authentication/OperationAccountSASPermission.ts (3 lines): - line 69: // TODO: Check all required operations - line 273: // TODO: Get container metadata is missing in swagger - line 413: // TODO: Get blob metadata is missing in swagger src/blob/authentication/BlobTokenAuthenticator.ts (2 lines): - line 37: // TODO: Make following async - line 80: // TODO: Check API Version and enable bearer challenge after 2019-12-12 src/blob/handlers/PageBlobRangesManager.ts (2 lines): - line 44: // TODO for #2 strategy: - line 277: // TODO: fill in zero ranges in the middle src/table/authentication/TableTokenAuthenticator.ts (2 lines): - line 37: // TODO: Make following async - line 80: // TODO: Check API Version and enable bearer challenge after 2019-12-12 src/queue/authentication/AccountSASAuthenticator.ts (2 lines): - line 42: // TODO: Make following async - line 297: // TODO: Emulator doesn't validate IP Address src/queue/middlewares/PreflightMiddlewareFactory.ts (2 lines): - line 272: // TODO: Should remove the wrapping blank when set CORS through set properties for service. - line 391: // TODO: Should extract the header by some policy. src/azurite.ts (2 lines): - line 83: // TODO: Align with blob DEFAULT_BLOB_PERSISTENCE_ARRAY - line 84: // TODO: Join for all paths in the array src/queue/authentication/QueueTokenAuthenticator.ts (2 lines): - line 37: // TODO: Make following async - line 80: // TODO: Check API Version and enable bearer challenge after 2019-12-12 src/blob/middlewares/PreflightMiddlewareFactory.ts (2 lines): - line 277: // TODO: Should remove the wrapping blank when set CORS through set properties for service. - line 398: // TODO: Should extract the header by some policy. src/table/authentication/AccountSASAuthenticator.ts (2 lines): - line 42: // TODO: Make following async - line 285: // TODO: Emulator doesn't validate IP Address src/blob/authentication/AccountSASAuthenticator.ts (2 lines): - line 50: // TODO: Make following async - line 350: // TODO: Emulator doesn't validate IP Address src/common/persistence/SqlExtentMetadataStore.ts (2 lines): - line 77: // TODO: Remove this part which only for test. - line 97: // TODO: Implement cleanup in database src/table/middleware/PreflightMiddlewareFactory.ts (2 lines): - line 272: // TODO: Should remove the wrapping blank when set CORS through set properties for service. - line 391: // TODO: Should extract the header by some policy. src/blob/lease/LeaseLeasedState.ts (2 lines): - line 90: // TODO: Check error message - line 98: // TODO: Validate proposedLeaseId follows GUID format src/queue/middlewares/AuthenticationMiddlewareFactory.ts (2 lines): - line 10: // TODO: Extract and move this part to common - line 24: // TODO: To support public access, we need to modify here to reject request later in handler src/blob/handlers/ServiceHandler.ts (2 lines): - line 174: // TODO: deserializer has a bug that when cors is undefined, - line 332: // TODO: Need update list out container lease properties with ContainerHandler.updateLeaseAttributes() src/blob/lease/LeaseBrokenState.ts (1 line): - line 144: // TODO: Validate proposedLeaseId follows GUID format src/blob/authentication/BlobSharedKeyAuthenticator.ts (1 line): - line 48: // TODO: Make following async src/table/entity/EdmGuid.ts (1 line): - line 16: // TODO: Check GUID string format src/blob/handlers/AppendBlobHandler.ts (1 line): - line 124: // TODO: Optimize with cache src/table/entity/EdmDateTime.ts (1 line): - line 11: // TODO: Check data time string format src/queue/main.ts (1 line): - line 49: // TODO: Should provide the absolute path directly. src/blob/handlers/BlobBatchHandler.ts (1 line): - line 120: // TODO: To support public access, we need to modify here to reject request later in handler src/table/persistence/LokiTableMetadataStore.ts (1 line): - line 552: * TODO: Account's service property should be created when storage account is created or metadata src/queue/QueueRequestListenerFactory.ts (1 line): - line 158: // TODO: Should support OPTIONS in swagger and autorest, then this handling can be moved to ServiceHandler. src/blob/SqlBlobServer.ts (1 line): - line 115: // TODO: Bring this back when GC based on SQL implemented src/queue/handlers/QueueHandler.ts (1 line): - line 308: // TODO: Should take care about the robustness. src/blob/gc/BlobGCManager.ts (1 line): - line 232: allExtents.delete(chunk); // TODO: Mark instead of removing from Set to improve performance src/table/entity/EdmString.ts (1 line): - line 10: // TODO: Check GUID string format src/table/entity/EdmDouble.ts (1 line): - line 12: // TODO: Support convert from string. parseFloat doesn't strictly checks non number chars src/table/authentication/TableSharedKeyLiteAuthenticator.ts (1 line): - line 42: // TODO: Make following async src/table/authentication/TableSharedKeyAuthenticator.ts (1 line): - line 39: // TODO: Make following async src/queue/handlers/ServiceHandler.ts (1 line): - line 85: // TODO: deserializer has a bug that when cors is undefined, src/queue/handlers/MessagesHandler.ts (1 line): - line 190: // TODO: deserialize does not support the message text with only empty character. src/blob/conditions/WriteConditionalHeadersValidator.ts (1 line): - line 129: // TODO: Check accurate behavior for different write operations src/table/entity/EdmInt64.ts (1 line): - line 11: // TODO: Check base64 src/blob/lease/LeaseExpiredState.ts (1 line): - line 151: // TODO: Validate proposedLeaseId follows GUID format src/common/AccountDataStore.ts (1 line): - line 73: // TODO: Parse environment variable from environment class src/blob/lease/LeaseAvailableState.ts (1 line): - line 104: // TODO: Validate proposedLeaseId follows GUID format src/queue/handlers/MessageIdHandler.ts (1 line): - line 53: // TODO: Similar to enqueue, deserialize does not support the message text with only empty character. src/table/handlers/ServiceHandler.ts (1 line): - line 97: // TODO: deserializer has a bug that when cors is undefined, src/table/entity/EdmBinary.ts (1 line): - line 11: // TODO: Check base64 src/common/persistence/MemoryExtentStore.ts (1 line): - line 361: // TODO: What happens when count exceeds merged payload length? src/queue/authentication/OperationAccountSASPermission.ts (1 line): - line 59: // TODO: Check all required operations src/blob/middlewares/AuthenticationMiddlewareFactory.ts (1 line): - line 26: // TODO: To support public access, we need to modify here to reject request later in handler src/table/middleware/tableStorageContext.middleware.ts (1 line): - line 99: // TODO: Not allowed create Table with Tables as name src/blob/lease/BlobWriteLeaseSyncer.ts (1 line): - line 6: * TODO: Update expire blob lease status to available on write blob operations.