Skip to content

Automatically handle seeing a port 3306 in a connection string #144

Open

Description

@mattrobenolt

port 3306 can never work for us, and it's common that a DATABASE_URL that you've used in another environemnt that was a traditional mysql driver looks something like: mysql://user:pass@aws.connect.psdb.cloud:3306/dbname

We already ignore the mysql:// protocol and rewrite it to https://, so we should similarly drop the 3306 if a connection is overly explicit.

Refs #142

Activity

  1. kailash360 commented on Dec 20, 2023

    @kailash360

    We can use RegEx to recognize port number in the connection string. Can I take up this issue?

  2. mattrobenolt commented on Dec 20, 2023

    @mattrobenolt
    MemberAuthor

    I don't think we need a regular expression here, we already fully parse the URL, it should have the port already I'd suspect, I haven't looked much.

  3. kailash360 commented on Dec 27, 2023

    @kailash360

    I checked the part where we parse the connection string and it is transformed into an URL object (here). We can use the port property in this URL object to check if it is allowed or not. We can simply create a list of not-allowed ports in a constants file and check if the port that we got from the URL object lies there or not, based on which we can proceed with the connection or throw and error.

  4. mattrobenolt commented on Dec 27, 2023

    @mattrobenolt
    MemberAuthor

    That's more what I'd expect for implementation. I don't think we need to even go that complex though, and I feel we only need to special case 3306 and coerce it to https/443. I don't think there's any reason to maintain anything else.

  5. clanzhang commented on Jul 21, 2026

    @clanzhang

    Hi @mattrobenolt, I see there's an existing PR (#211) for this but it
    has been open for a few weeks without review. I'd like to take a shot
    at this as well with a clean implementation. Would you be open to
    reviewing a new PR, or should I wait for #211 to be resolved first?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions