lukaszraczylo
1b7890f322
Gofmt the codebase.
2025-02-26 00:47:41 +00:00
lukaszraczylo
66c8fef24d
Improve the test coverage
2025-02-26 00:44:14 +00:00
lukaszraczylo
d83c3a4567
Increase tests coverage.
2025-02-25 23:55:25 +00:00
lukaszraczylo
2ab78d35ce
Configuration Management:
...
Optimized the getDetailsFromEnv function to reduce redundant lookups and improve type handling
Added direct environment variable access for better performance
Memory Cache Optimization:
Implemented a size-based compression threshold (1KB) to avoid compressing small payloads
Added cache size limits (10,000 entries) to prevent memory leaks
Implemented efficient eviction strategies for the oldest entries
Added atomic counter for thread-safe cache size tracking
Improved cleanup routines with GC triggering for large caches
Proxy Implementation:
Refactored the proxy code into smaller, focused functions for better maintainability
Optimized gzip handling for better performance
Improved error handling and logging
Enhanced tracing integration
GraphQL Processing:
Optimized introspection query checking with fast-path returns
Improved object pool usage
Added detailed comments for better code understanding
Split complex functions into smaller, more focused ones
Fixed test compatibility issues with introspection checking
Request Processing:
Refactored the request processing logic into smaller, focused functions
Separated user extraction, caching, and request handling for better maintainability
Improved error handling and response generation
Tracing Enhancements:
Added better span context management
Implemented custom attributes for more detailed tracing
Added sampling configuration to reduce overhead
Improved resource attribution with host and process information
Added timeout handling for tracing operations
Application Lifecycle:
Implemented graceful shutdown with proper signal handling
Added goroutine management with wait groups
Improved startup sequence with better error handling
Added timeout handling for shutdown operations
2025-02-25 23:34:39 +00:00
lukaszraczylo and GitHub
6af5aefe54
Add tracing and relevant tests ( #21 )
...
* Add tracing and relevant tests.
* fixup! Add tracing and relevant tests.
* gofmt the code 🤷
* fixup! gofmt the code 🤷
2025-01-08 18:29:25 +00:00
lukaszraczylo
984e448ff0
fixup! fixup! Fixes the code for additional test cases.
2024-12-06 13:27:59 +00:00
lukaszraczylo
5799f8ca7c
fixup! Fixes the code for additional test cases.
2024-12-06 13:22:18 +00:00
lukaszraczylo
ac84c69812
Fixes the code for additional test cases.
2024-12-06 12:54:36 +00:00
lukaszraczylo
e54bbe8249
Additional tests to ensure that schema introspection is working as expected
2024-12-06 12:03:37 +00:00
lukaszraczylo
ed3966e577
If the field is allowed, continue checking remaining fields.
2024-12-06 11:58:34 +00:00
lukaszraczylo
6a52a9f673
Fixes the issue with case comparison.
2024-12-06 11:49:47 +00:00
lukaszraczylo
1ca05a7a2a
Release 0.24.x - changes the query introspection.
2024-12-06 11:27:01 +00:00
lukaszraczylo
eb1b4b4eb7
Enhance the tests to cover the end status code as well.
2024-12-06 11:15:38 +00:00
lukaszraczylo
fc9bab47fb
Fix query introspection blocking on deeply nested types.
2024-12-06 11:04:26 +00:00
lukaszraczylo
cbe2afe539
Gather cleaner event errors and display as a group rather than separately.
2024-12-06 09:39:26 +00:00
lukaszraczylo and GitHub
6b31e5c4c0
Little code cleanup. ( #19 )
2024-10-10 10:34:23 +01:00
lukaszraczylo
7726be1aed
Update dependencies, latest ask library.
2024-09-16 21:42:46 +01:00
lukaszraczylo and GitHub
2e1ca3584d
further improvements ( #18 )
...
* Remove unnecessary mutex
* Update with latest, improved version of graphql client
2024-09-13 21:41:17 +01:00
lukaszraczylo
9437aebabe
Update README.md
2024-08-20 13:56:46 +01:00
lukaszraczylo
68526ddfd4
Add delay, in case the container runs in deployment with hasura.
...
Hasura takes its sweet time to start up, that causes the client to error out
as the graphql proxy fires up practically instantly. This is a temporary workaround.
2024-08-20 13:14:24 +01:00
lukaszraczylo
9f9e36efa9
fixup! Enhance the retry logic for the proxied queries.
2024-08-20 13:07:37 +01:00
lukaszraczylo
cdd2a2a2c6
Enhance the retry logic for the proxied queries.
2024-08-20 12:45:22 +01:00
lukaszraczylo
5b171b2317
Add initial retry for end graphql server connection.
2024-08-20 12:40:04 +01:00
lukaszraczylo
427ed49d62
Update makefile to allow for local builds.
2024-08-20 12:22:57 +01:00
lukaszraczylo
9150b25227
Fixing the proxy timeout settings which were not passed to the client and and graphql server.
2024-08-20 11:38:40 +01:00
lukaszraczylo
8b8a389cc3
Update README.md
2024-08-19 15:58:20 +01:00
lukaszraczylo
839e211790
fixup! New release.
2024-08-19 15:52:40 +01:00
lukaszraczylo
ae9a44033b
New release.
...
Includes the panic when cache is completely disabled.
2024-08-19 15:43:42 +01:00
lukaszraczylo
dc9e0906fd
Resolve issue when proxy could panic.
...
Issue occured when cache was disabled via environment variables but
graphql queries contained the cache directive.
2024-08-19 11:27:06 +01:00
lukaszraczylo
dfd3b02014
Release 0.19.x
2024-06-29 09:57:52 +01:00
lukaszraczylo
6f6d1afcd4
Release 0.19.x
2024-06-29 09:44:39 +01:00
lukaszraczylo
a24e6c8c4d
fixup! Fix the introduced bug where RO endpoint could've been accidentally used. ( #17 )
2024-06-29 08:52:41 +01:00
lukaszraczylo and GitHub
d141fe3c04
Fix the introduced bug where RO endpoint could've been accidentally used. ( #17 )
...
* Fix the introduced bug where RO endpoint could've been accidentally used.
2024-06-28 21:48:39 +01:00
lukaszraczylo
162c4acd7c
fixup! fixup! fixup! fixup! fixup! fixup! Fix redis cache benchmark.
2024-06-28 18:05:17 +01:00
lukaszraczylo
fde78a4ece
fixup! fixup! fixup! fixup! fixup! Fix redis cache benchmark.
2024-06-28 17:58:46 +01:00
lukaszraczylo and GitHub
b1ffffd545
Create static.yml
2024-06-28 17:49:21 +01:00
lukaszraczylo
977554dd49
fixup! fixup! fixup! fixup! Fix redis cache benchmark.
2024-06-28 14:12:25 +01:00
lukaszraczylo
4ca8ce5751
fixup! fixup! fixup! Fix redis cache benchmark.
2024-06-28 13:57:43 +01:00
lukaszraczylo
de55444012
fixup! fixup! Fix redis cache benchmark.
2024-06-28 13:50:58 +01:00
lukaszraczylo
3ec1c37f23
fixup! Fix redis cache benchmark.
2024-06-28 13:40:43 +01:00
lukaszraczylo
eb9821dc3f
Fix redis cache benchmark.
2024-06-28 13:37:31 +01:00
lukaszraczylo
3467cc5be0
Fix the cleanup routine.
2024-06-28 13:26:18 +01:00
lukaszraczylo and GitHub
b10a28bf52
General code optimisations. ( #16 )
...
* General code optimisations.
2024-06-28 12:31:01 +01:00
lukaszraczylo
b29733e435
fixup! fixup! Update go.mod and go.sum
2024-06-28 00:46:34 +01:00
lukaszraczylo
f8a7b8ad83
fixup! Update go.mod and go.sum
2024-06-28 00:40:58 +01:00
lukaszraczylo
43b7ab7a77
fixup! fixup! fixup! fixup! fixup! fixup! fixup! Disable caller as it's not necessary and generates slight delay.
2024-06-27 13:48:36 +01:00
lukaszraczylo
d0c883a418
fixup! fixup! fixup! fixup! fixup! fixup! Disable caller as it's not necessary and generates slight delay.
2024-06-27 13:42:43 +01:00
lukaszraczylo
33fc370ff5
fixup! fixup! fixup! fixup! fixup! Disable caller as it's not necessary and generates slight delay.
2024-06-27 13:40:13 +01:00
lukaszraczylo
0a1fb50906
fixup! fixup! fixup! fixup! Disable caller as it's not necessary and generates slight delay.
2024-06-27 13:31:44 +01:00
lukaszraczylo
f348c07b60
fixup! fixup! fixup! Disable caller as it's not necessary and generates slight delay.
2024-06-27 08:44:46 +01:00
lukaszraczylo
60b2f217d0
fixup! fixup! Disable caller as it's not necessary and generates slight delay.
2024-06-27 08:44:14 +01:00
lukaszraczylo
f7babe93d9
fixup! Disable caller as it's not necessary and generates slight delay.
2024-06-20 08:41:33 +01:00
lukaszraczylo
16844e325e
Disable caller as it's not necessary and generates slight delay.
2024-06-19 23:40:44 +01:00
lukaszraczylo and GitHub
61d7a45d00
Update cache library, use miniredis for testing, add additional benchmarks. ( #14 )
...
Update cache library,
Update logging library,
use miniredis for testing, add additional benchmarks.
2024-06-19 23:10:36 +01:00
de31912d2f
increase error handling and mutex encapsulation ( #12 )
...
* increase error handling and mutex encapsulation
* undo method rename for now
* set cant return error
---------
Co-authored-by: Chris Clayton <[email protected] >
2024-06-15 10:21:49 +01:00
lukaszraczylo
e0e9b4278f
Release: Improve documentation and number of logs cleaned.
2024-06-12 12:59:54 +01:00
lukaszraczylo
9a7635bd35
fixup! fixup! Add cleaning up action logs as well.
2024-06-12 12:46:13 +01:00
lukaszraczylo
e8b07d2e01
fixup! Add cleaning up action logs as well.
2024-06-12 12:27:13 +01:00
lukaszraczylo
efdd2de035
Add cleaning up action logs as well.
2024-06-12 12:23:14 +01:00
lukaszraczylo
57d2fd8e80
Update documentation.
2024-06-12 12:12:25 +01:00
lukaszraczylo
e5b3eff1cd
Adjust field alignment.
2024-06-12 12:07:22 +01:00
lukaszraczylo
a23f9de262
fixup! Update dependencies.
2024-06-12 12:05:50 +01:00
lukaszraczylo
d98f87f609
Update dependencies.
2024-06-12 11:57:10 +01:00
lukaszraczylo
ceed490680
Additional updates.
2024-06-12 11:54:03 +01:00
lukaszraczylo
b2380c689b
Add cleanup of the event and invocation logs on timer.
2024-06-12 11:47:21 +01:00
lukaszraczylo
2e40ee0c62
Update the helpers to sort labels alpabetically.
...
It will help to avoid the flaky tests and duplicated metrics.
As a bonus - added tests and benchmarks for monitoring package.
2024-06-11 19:57:18 +01:00
lukaszraczylo
df9f43718a
fixup! fixup! fixup! fixup! fixup! fixup! Fix: Redis connection for tests.
2024-06-11 12:53:29 +01:00
lukaszraczylo
91d824636d
fixup! fixup! fixup! fixup! fixup! Fix: Redis connection for tests.
2024-06-11 12:12:17 +01:00
lukaszraczylo
cecccc1441
fixup! fixup! fixup! fixup! Fix: Redis connection for tests.
2024-06-11 12:08:44 +01:00
lukaszraczylo
32eef4af37
fixup! fixup! fixup! Fix: Redis connection for tests.
2024-06-11 12:07:30 +01:00
lukaszraczylo
d05172294c
fixup! fixup! Fix: Redis connection for tests.
2024-06-11 11:49:50 +01:00
lukaszraczylo
44cd694086
fixup! Fix: Redis connection for tests.
2024-06-11 11:44:17 +01:00
lukaszraczylo
fe7af0b8ca
Fix: Redis connection for tests.
2024-06-11 11:43:07 +01:00
lukaszraczylo
12e0294945
Add distibuted cache with Redis
2024-06-11 11:35:50 +01:00
lukaszraczylo
a01a4da9b5
Add metrics for cached queries + cache hit/miss
2024-06-11 11:35:49 +01:00
lukaszraczylo
371d51f96f
Update dependencies.
2024-06-11 11:35:49 +01:00
lukaszraczylo
a9fd6b3d0a
Release: Add cache operations via API + support distributed redis cache.
2024-06-11 11:35:46 +01:00
lukaszraczylo
9291ac03db
Improved graphql library.
2024-05-14 11:33:35 +01:00
lukaszraczylo
75944a3a52
Fixup: Update graphql client library.
2024-05-14 09:40:21 +01:00
lukaszraczylo
5a01ec3876
Improve logging and cache sub-packages to decrease the number of allocations
...
and improve performance.
2024-05-14 09:21:16 +01:00
lukaszraczylo
c3e5b85f57
Update dependencies.
2024-05-04 21:22:19 +01:00
lukaszraczylo
bc2dff0185
Update dependencies.
2024-04-12 23:30:18 +01:00
lukaszraczylo and GitHub
ce344d17eb
Add read only replica ( #11 )
...
* Improve stats gathering.
2024-03-13 23:09:38 +00:00
lukaszraczylo
dc916d36cd
Fix documentation after testing.
2024-03-12 23:12:50 +00:00
lukaszraczylo and GitHub
e495cf23d9
Read only endpoint support ( #10 )
...
* This change introduces ability to set additional endpoint leading to the
instance of the graphql server connected to the read only database.
If regular query is detected and endpoint for `HOST_GRAPHQL_READONLY` value is set,
the query will be proxied to it. Mutations and non-graphql will be sent
to the `HOST_GRAPHQL` endpoint.
2024-03-12 11:16:35 +00:00
lukaszraczylo and GitHub
ba1fef9b57
Improve stats gathering ( #9 )
2024-03-05 22:42:30 +00:00
lukaszraczylo and GitHub
3a18e0e935
Improve stats gathering and tests improvements. ( #8 )
2024-03-05 22:40:06 +00:00
lukaszraczylo
b6c284b66d
Update dependencies.
2024-03-05 14:40:45 +00:00
lukaszraczylo
88ef1aac7f
Reuse http client and add retry to the proxied requests.
2024-03-05 14:38:03 +00:00
lukaszraczylo
6d32278851
Reuse http client.
2024-03-05 14:24:49 +00:00
lukaszraczylo
f2085c8491
Update dependencies.
2024-02-15 10:22:31 +00:00
lukaszraczylo
ebbb1c53f5
Micro fixes.
2024-02-15 10:21:51 +00:00
lukaszraczylo
0bdea741bf
Move results to the struct for ease of management.
2024-02-15 09:50:51 +00:00
lukaszraczylo
4cb0d22874
Return 403 on blocked queries.
2024-02-15 09:34:57 +00:00
lukaszraczylo
9910bb1d45
Update documentation.
2024-02-15 09:31:49 +00:00
lukaszraczylo
756c63c0d1
Add support for 'refresh' in @cached section of the query.
...
Example:
```
query MyProducts @cached(refresh: true) {
products {
id
name
}
}
```
2024-02-15 09:29:27 +00:00
lukaszraczylo
029e0166c0
Docker to use distroless image.
2024-02-08 20:50:50 +00:00
lukaszraczylo
4cf27e0e3b
Missed on files requiring json encoding.
2024-02-05 15:37:24 +00:00
lukaszraczylo
3149a27466
Update semver config.
2024-02-05 15:31:45 +00:00
lukaszraczylo
bb28f2fcd8
Change the json library to the fully compatible ( and fast ) one.
2024-02-05 15:30:59 +00:00