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

[Service Bus] Emulator connection string support #28549

Open
jsquire opened this issue Feb 10, 2024 · 3 comments
Open

[Service Bus] Emulator connection string support #28549

jsquire opened this issue Feb 10, 2024 · 3 comments
Assignees
Labels
Client This issue points to a problem in the data-plane of the library. Service Bus
Milestone

Comments

@jsquire
Copy link
Member

jsquire commented Feb 10, 2024

Summary

The Azure Messaging team is working on a service emulator intended to provide a local development experience. To reduce friction for developers, the emulator will be using connections without TLS so that certificates do not need to be managed. To support this flow, the emulator will emit a connection string that contains an identifying slug to indicate to clients that they should not use TLS and should restrict communication to the local environment.

Emulator connection string slug:

;UseDevelopmentEmulator=true

Full example:

Endpoint=localhost:6765;SharedAccessKeyName=<< REDACTED >>;SharedAccessKey=<< REDACTED >>;UseDevelopmentEmulator=true

Scope of work

  • Update connection string parsing to recognize the emulator slug.
  • When the emulator slug is present in a connection string, validate that the endpoint resolves to the local host.
  • When the emulator slug is present in a connection string, do not use TLS for service operations.
  • Do not allow non-TLS communication for non-local hosts.

Out of scope

  • Support for validating that custom host names (via local DNS or hosts file) resolve to localhost

Success Criteria

  • Connection string parsing recognizes the emulator slug.
  • Connection string parsing preserves a custom port for the endpoint.
  • When the emulator slug is present, connection string parsing validates that the endpoint resolves to local host.
  • Local host validation allows for localhost, IPv4, and IPv6 forms.
  • Clients support non-TLS communication for service operations.
  • Clients require TLS communication for non-local hosts.
  • New tests necessary to validate the feature have been created and pass reliably.
  • The existing test suite continues to produce deterministic results and pass reliably.

References and related

@jsquire jsquire added Client This issue points to a problem in the data-plane of the library. Service Bus labels Feb 10, 2024
@jsquire jsquire added this to the Backlog milestone Feb 10, 2024
@jsquire
Copy link
Member Author

jsquire commented Feb 10, 2024

//cc: @jeremymeng

@jeremymeng jeremymeng self-assigned this Feb 12, 2024
@deyaaeldeen
Copy link
Member

EH implementation is in #29195

@jessephelps
Copy link

This is impacting me as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Client This issue points to a problem in the data-plane of the library. Service Bus
Projects
Status: No status
Development

No branches or pull requests

4 participants