Update test setup to leverage legacy hash for API keys in order
to avoid the performance impact of bcrypt. Replace the API key
based test with a user subscription-based test to enhance
concurrency and reliability. Replace `OrganizationByAPIKey`
with `OrganizationsByUser` to optimize the retrieval process.
Remove bcrypt hashing for API keys to speed up concurrent tests and
replace it with a legacy hashing function. Reduce the number of
concurrent readers and writers in the test to improve performance
while retaining essential functionality checks. Use a more efficient
method to fetch organizations within the concurrency test block.
Updates the Node.js base image in the Dockerfile to the latest
24.11.1-alpine version for improved performance and security. This
change ensures the application runs on a stable and supported
version of Node.js.
Remove the deprecated annotation for ingress class and add
ingressClassName to align with current Kubernetes standards.
This ensures better compatibility and adherence to best practices.
Introduce `AddUserToOrganization`, `RemoveAPIKey`, and
`RemoveOrganization` commands to enhance organization
management. Implement validation for user addition and
API key removal. Update GraphQL schema to support new
mutations and add caching for the new events, ensuring
that organizations and their relationships are accurately
represented in the cache.
Adds unit tests for the `AddOrganization` and `AddAPIKey` commands.
These tests validate various scenarios, including success cases,
handling of already existing organizations or keys, and ensuring
required fields are checked. The
changes enhance test coverage and ensure robustness of the command
logic.
Decrease the number of goroutines in concurrent read and write tests to
minimize race conditions during testing. This ensures more reliable
test results and makes it easier to identify concurrency issues.
Introduce health checking functionality with liveness and readiness
endpoints to monitor the application's status. Implement a health
checker that verifies database connectivity and provides a simple
liveness check. Update service routing to use the new health
checker functionality. Add corresponding unit tests for validation.
Implement read-write mutex locks for cache functions to ensure
concurrency safety. Add debug logging for cache updates to enhance
traceability of operations. Optimize user addition logic to prevent
duplicates. Introduce a new test file for comprehensive cache
functionality testing, ensuring reliable behavior.
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 CLAUDE.md to provide comprehensive documentation for the
GraphQL schema registry service, covering architecture, event
sourcing, GraphQL layer, schema merging, authentication,
Cosmo Router integration, and development workflow. Updates
.gitignore to include the claude directory.
Introduce the CommandExecutor interface to abstract command execution,
allowing for easier mocking in tests. Implement DefaultCommandExecutor
to use the os/exec package for executing commands. Update the
GenerateCosmoRouterConfig function to utilize the new
GenerateCosmoRouterConfigWithExecutor function that accepts a command
executor parameter. Add a MockCommandExecutor for simulating command
execution in unit tests with realistic behavior based on input YAML
files. This enhances test coverage and simplifies error handling.
Update version check to validate it is a non-empty string. Improve
assertions for the subscription configuration by ensuring the presence
of required fields and correct types. Adapt checks for routing URLs
and decentralize subscription validation for more robust testing.
These changes ensure better verification of configuration
integrity and correctness in test scenarios.
Implements the `latestSchema` query to fetch the latest schema
updates for an organization. This change enhances the GraphQL API by
allowing clients to retrieve the most recent schema version and its
associated subgraphs. The resolver performs necessary access checks,
logs relevant information, and generates the Cosmo router configuration
from fetched subgraph SDLs, returning structured schema update details.
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.
This commit introduces a new configuration file for git-cliff to
automate changelog generation. It defines templates for the header,
body, and footer of the changelog, ensuring that all notable changes
are documented effectively. The configuration enables parsing of
conventional commit messages, allowing for better organization of
changes by type. This enhancement streamlines the release process and
improves project maintainability.
Remove the conflicts entry for the unbound-schemas formula in the
homebrew-taps configuration to simplify the integration process. This
change enhances compatibility and streamlines the build setup.
Inject the build version into the binary using the CI_COMMIT
argument for better traceability of deployments. Update the
Dockerfile to pass the commit hash to the build process,
ensuring that each build contains version information tied
to the specific commit.
Add the OTEL_EXPORTER_OTLP_ENDPOINT environment variable to
the deployment configuration. This change enables the application
to send telemetry data to the specified OpenTelemetry collector
endpoint for better monitoring and observability.
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.