Adds a new hashed key storage mechanism for API keys in the cache.
Replaces direct mapping to API keys with composite keys based on
organizationId and name. Implements searching of API keys using
hash comparisons for improved security. Updates related tests to
ensure correct functionality and validate the hashing. Also,
adds support for a new dependency `golang.org/x/crypto`.
Adds unit tests for the WebSocket initialization function to validate
behavior with valid, invalid, and absent API keys. Introduces a mock
cache implementation to simulate organization retrieval based on
hashed API keys. Ensures proper context value setting upon
initialization, enhancing test coverage and reliability for API key
handling in WebSocket connections.
Refactor API key processing to improve clarity and reduce code
duplication. Introduce detailed logging for schema updates and
initializations, capturing relevant context information. Use
background context for async operations to avoid blocking.
Implement organization lookup logic in the WebSocket init
function for consistent API key handling across connections.
Creates a new `GenerateCosmoRouterConfig` function to build and
serialize a Cosmo Router configuration from subgraphs. Implements
PubSub mechanism for managing schema updates, allowing
subscription to updates. Adds Subscription resolver and updates
existing structures to accommodate new functionalities. This
enhances the system's capabilities for dynamic updates and
configuration management.
Remove Sentry dependencies and configuration. Introduce monitoring
setup for OpenTelemetry. Update logging to include log format
options, and replace Sentry error handling middleware with
monitoring handlers for GraphQL playground. Adjust environment
variable handling to enhance configuration clarity and flexibility.
Add a context with timeout to handle graceful shutdown of the HTTP
server. Update error handling during the server's close to include
context-aware shutdown. Ensure that the server properly logs only
non-closed errors when listening.