Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W Waarp Gateway
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 48
    • Issues 48
    • List
    • Boards
    • Service Desk
    • Milestones
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Applications
  • Waarp Gateway
  • Waarp Gateway
  • Issues
  • #328
Closed
Open
Issue created May 05, 2022 by Paolo Pantellini@paolo.pantelliniMaintainer

Stop using auto-incremented IDs in transfer requests

Currently, when making a transfer request, the gateway uses the internal, auto-incremented ID as transfer ID. This is a problem as it might lead to ID collision when the gateway resets its increment. Instead of using the ID, the gateway should use the RemoteTransferID when making a request (like it already does on the server-side). This RemoteTransferID should be initialized when the transfer is created, and its value should be somewhat random (like a UUID).

How this ID is generated is still up for debate, but there are some limitations. On the database side, RemoteTransferID is stored as VARCHAR(100), so there aren't really any limitations there. Same for HTTP, since headers don't have a maximum length. SFTP does not allow sending transfer IDs in the request, so the problem does not apply there. However, in the R66 protocol, transfer IDs must have the int64 type.

This means that, whatever method we chose to generate the IDs, these IDs cannot be longer than 64 bits when represented as integers.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking