Commit Graph

51 Commits

Author SHA1 Message Date
argoyle cc33c651cd fix(graph): stabilize debouncer tests with synctest fake clock
schemas / vulnerabilities (pull_request) Successful in 2m17s
schemas / check-release (pull_request) Successful in 4m9s
schemas / check (pull_request) Successful in 4m52s
pre-commit / pre-commit (pull_request) Successful in 9m43s
schemas / build (pull_request) Successful in 6m58s
schemas / deploy-prod (pull_request) Has been skipped
Replace real time.Sleep waits with testing/synctest fake clock to
eliminate CI flakiness caused by timer races on loaded machines.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 13:25:18 +01:00
argoyle 28aa32ad8c fix: prevent OOM on rapid schema publishing
schemas / vulnerabilities (pull_request) Successful in 6m43s
schemas / check-release (pull_request) Successful in 11m27s
schemas / check (pull_request) Successful in 14m51s
pre-commit / pre-commit (pull_request) Successful in 19m39s
schemas / build (pull_request) Successful in 8m26s
schemas / deploy-prod (pull_request) Has been skipped
Add concurrency-limited CosmoGenerator (semaphore limit=1, 60s timeout)
to prevent unbounded concurrent wgc process spawning. Add debouncer
(500ms) to coalesce rapid schema updates per org+ref. Fix double
subgraph fetch in Supergraph resolver and goroutine leak in
SchemaUpdates subscription.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 08:05:47 +01:00
renovate 08e84ac1dc fix(deps): update module github.com/99designs/gqlgen to v0.17.87
schemas / check-release (pull_request) Successful in 7m11s
schemas / check (pull_request) Successful in 10m16s
pre-commit / pre-commit (pull_request) Successful in 13m23s
schemas / vulnerabilities (pull_request) Successful in 21m6s
schemas / build (pull_request) Successful in 8m44s
schemas / deploy-prod (pull_request) Has been skipped
2026-02-20 14:26:46 +01:00
argoyle 73eae98929 feat: migrate from GitLab CI to Gitea Actions
schemas / vulnerabilities (pull_request) Successful in 2m15s
schemas / check-release (pull_request) Successful in 2m17s
schemas / check (pull_request) Successful in 4m48s
pre-commit / pre-commit (pull_request) Successful in 5m58s
schemas / build (pull_request) Successful in 3m36s
schemas / deploy-prod (pull_request) Has been skipped
- Update git remote to git.unbound.se
- Add Gitea workflows: ci.yaml, pre-commit.yaml, release.yaml, goreleaser.yaml
- Delete .gitlab-ci.yml
- Update Go module path to gitea.unbound.se/unboundsoftware/schemas
- Update all imports to new module path
- Update Docker registry to oci.unbound.se
- Update .goreleaser.yml for Gitea releases with internal cluster URL
- Remove GitLab CI linter from pre-commit config
- Use shared release workflow with tag_only for versioning

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 22:53:46 +01:00
Renovate b69de655e4 fix(deps): update module github.com/99designs/gqlgen to v0.17.86 2026-01-13 08:40:58 +01:00
Renovate 0e8d0965b7 fix(deps): update module github.com/99designs/gqlgen to v0.17.85 2025-12-17 07:58:03 +01:00
Renovate ca7e063888 fix(deps): update module github.com/99designs/gqlgen to v0.17.84 2025-11-24 19:34:22 +01:00
argoyle ffcf41b85a feat: add commands for managing organizations and users
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.
2025-11-22 18:37:07 +01:00
argoyle 4468903535 feat(cache): implement hashed API key storage and retrieval
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`.
2025-11-20 22:11:24 +01:00
argoyle 47dbf827f2 fix: add command executor interface for better testing
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.
2025-11-20 21:09:00 +01:00
argoyle df44ddbb8e test: enhance assertions for version and subscription config
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.
2025-11-20 18:24:49 +01:00
argoyle 9368d77bc8 feat: add latestSchema query for retrieving schema updates
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.
2025-11-20 18:24:36 +01:00
argoyle bb0c08be06 fix: enhance API key handling and logging in middleware
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.
2025-11-20 12:58:15 +01:00
argoyle 80daed081d feat: add Cosmo Router config generation and PubSub support
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.
2025-11-19 11:29:30 +01:00
Renovate e343ff7538 chore(deps): update pre-commit hook golangci/golangci-lint to v2.6.0 2025-10-30 11:19:43 +01:00
Renovate 52e58f8df8 fix(deps): update module github.com/99designs/gqlgen to v0.17.80 2025-09-17 21:19:09 +02:00
Renovate e7a09e8322 fix(deps): update module github.com/99designs/gqlgen to v0.17.79 2025-09-15 07:19:10 +02:00
Renovate 0fab1d5098 fix(deps): update module github.com/99designs/gqlgen to v0.17.78 2025-07-28 12:21:43 +02:00
Renovate f53321368d fix(deps): update module github.com/99designs/gqlgen to v0.17.73 2025-05-03 16:37:30 +02:00
Renovate a87b480345 fix(deps): update module github.com/99designs/gqlgen to v0.17.71 2025-04-18 10:23:36 +02:00
argoyle aaa111dd20 feat(service): implement graceful shutdown for HTTP server
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.
2025-04-12 13:41:02 +02:00
Renovate a9c07bf4c2 fix(deps): update module github.com/99designs/gqlgen to v0.17.68 2025-03-17 08:39:58 +01:00
argoyle ee378dc6a3 feat(sdlmerge): add shared types for GraphQL schema handling
Introduce types for managing fielded, enum, union, and scalar shared types.
Implement functionality for comparing values and creating field sets.
Enhance schema extensions by integrating new visitors for enum types.
2025-02-28 13:10:07 +01:00
Renovate 7ffa9a3881 fix(deps): update module github.com/vektah/gqlparser/v2 to v2.5.23 2025-02-27 23:35:06 +01:00
Renovate 84b7d2bf74 fix(deps): update module github.com/99designs/gqlgen to v0.17.64 2025-01-28 19:48:02 +01:00
Renovate 4be0518209 fix(deps): update module github.com/99designs/gqlgen to v0.17.62 2025-01-01 19:45:11 +01:00
Renovate 6bf0e2c12b fix(deps): update module github.com/99designs/gqlgen to v0.17.61 2024-12-20 07:49:00 +01:00
argoyle d07a714d3c fix(deps): update module github.com/99designs/gqlgen to v0.17.56 2024-11-10 14:29:58 +01:00
Renovate 5cc4ed6f9d fix(deps): update module github.com/99designs/gqlgen to v0.17.53 2024-09-17 13:56:27 +00:00
Renovate 1ae6af6163 fix(deps): update module github.com/99designs/gqlgen to v0.17.52 2024-09-16 22:54:19 +00:00
Renovate e55acc3c6f fix(deps): update module github.com/99designs/gqlgen to v0.17.50 2024-09-14 12:56:44 +00:00
Renovate 4b9d7f7b1f fix(deps): update module github.com/99designs/gqlgen to v0.17.46 2024-05-08 08:54:25 +02:00
argoyle 6cd3b935e4 feat: add full SDL to SupGraph response 2024-03-25 21:46:15 +01:00
argoyle 92d33b078c chore(deps): bump github.com/99designs/gqlgen from 0.17.41 to 0.17.42
Bumps [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) from 0.17.41 to 0.17.42.
- [Release notes](https://github.com/99designs/gqlgen/releases)
- [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/99designs/gqlgen/compare/v0.17.41...v0.17.42)
2024-01-02 09:36:00 +01:00
argoyle e2ab56ce1e chore(deps): bump github.com/99designs/gqlgen from 0.17.40 to 0.17.41
Bumps [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) from 0.17.40 to 0.17.41.
- [Release notes](https://github.com/99designs/gqlgen/releases)
- [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/99designs/gqlgen/compare/v0.17.40...v0.17.41)
2023-12-04 08:42:54 +01:00
argoyle 873aaec785 chore(deps): bump github.com/99designs/gqlgen from 0.17.38 to 0.17.39
Bumps [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) from 0.17.38 to 0.17.39.
- [Release notes](https://github.com/99designs/gqlgen/releases)
- [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/99designs/gqlgen/compare/v0.17.38...v0.17.39)
2023-10-06 11:37:21 +02:00
argoyle 24b5693f22 chore(deps): bump github.com/99designs/gqlgen from 0.17.32 to 0.17.33
Bumps [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) from 0.17.32 to 0.17.33.
- [Release notes](https://github.com/99designs/gqlgen/releases)
- [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/99designs/gqlgen/compare/v0.17.32...v0.17.33)
2023-06-14 15:13:54 +02:00
argoyle 56317eb04b chore(deps): bump github.com/99designs/gqlgen from 0.17.31 to 0.17.32
Bumps [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) from 0.17.31 to 0.17.32.
- [Release notes](https://github.com/99designs/gqlgen/releases)
- [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/99designs/gqlgen/compare/v0.17.31...v0.17.32)
2023-06-08 13:19:05 +02:00
argoyle a46895081e chore: actually validate API key privileges and refs 2023-05-29 22:13:25 +02:00
argoyle bd70eac12d chore(deps): bump github.com/99designs/gqlgen from 0.17.30 to 0.17.31
Bumps [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) from 0.17.30 to 0.17.31.
- [Release notes](https://github.com/99designs/gqlgen/releases)
- [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/99designs/gqlgen/compare/v0.17.30...v0.17.31)
2023-05-06 10:15:35 +02:00
argoyle 554a6c252f feat: organizations and API keys 2023-04-27 07:46:52 +02:00
argoyle e943f08746 chore(deps): bump github.com/99designs/gqlgen from 0.17.29 to 0.17.30
Bumps [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) from 0.17.29 to 0.17.30.
- [Release notes](https://github.com/99designs/gqlgen/releases)
- [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/99designs/gqlgen/compare/v0.17.29...v0.17.30)
2023-04-21 09:57:09 +02:00
argoyle 01fb97e5b1 chore(deps): bump github.com/99designs/gqlgen from 0.17.26 to 0.17.27
Bumps [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) from 0.17.26 to 0.17.27.
- [Release notes](https://github.com/99designs/gqlgen/releases)
- [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/99designs/gqlgen/compare/v0.17.26...v0.17.27)
2023-03-21 17:58:13 +01:00
argoyle 02c0b909da chore(deps): bump github.com/99designs/gqlgen from 0.17.25 to 0.17.26
Bumps [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) from 0.17.25 to 0.17.26.
- [Release notes](https://github.com/99designs/gqlgen/releases)
- [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/99designs/gqlgen/compare/v0.17.25...v0.17.26)
2023-03-08 14:32:44 +01:00
argoyle 10552d5486 chore(deps): bump github.com/99designs/gqlgen from 0.17.24 to 0.17.25
Bumps [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) from 0.17.24 to 0.17.25.
- [Release notes](https://github.com/99designs/gqlgen/releases)
- [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/99designs/gqlgen/compare/v0.17.24...v0.17.25)
2023-03-02 09:41:26 +01:00
argoyle e26e158e68 chore(deps): bump github.com/99designs/gqlgen from 0.17.22 to 0.17.24
Bumps [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) from 0.17.22 to 0.17.24.
- [Release notes](https://github.com/99designs/gqlgen/releases)
- [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/99designs/gqlgen/compare/v0.17.22...v0.17.24)
2023-01-24 12:12:13 +01:00
argoyle 98a679d2d3 chore: add context and error handling 2022-12-17 14:36:42 +01:00
argoyle 27c78d8070 chore(deps): bump github.com/99designs/gqlgen from 0.17.20 to 0.17.22
Bumps [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) from 0.17.20 to 0.17.22.
- [Release notes](https://github.com/99designs/gqlgen/releases)
- [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/99designs/gqlgen/compare/v0.17.20...v0.17.22)
2022-12-16 15:21:45 +01:00
argoyle 6b454ca8bf chore: update schema if URLs have changed 2022-10-17 14:30:48 +02:00
argoyle b1124d6350 chore: handle push of unchanged schema 2022-10-14 22:41:56 +02:00