-
Notifications
You must be signed in to change notification settings - Fork 123
Console 1382 member pagination and search #7299
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
base: main
Are you sure you want to change the base?
Conversation
Summary of ChangesHello @jonathanawesome, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces significant improvements to the organization members management experience by implementing server-side pagination and a robust search capability. Users can now efficiently filter the list of organization members using a search term that matches parts of a user's email or username. This enhancement spans across the GraphQL API, backend data retrieval services, and the frontend user interface, providing a more performant and user-friendly way to navigate and manage organization members. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
🚀 Snapshot Release (
|
| Package | Version | Info |
|---|---|---|
@graphql-hive/apollo |
0.43.0-alpha-20251128203902-8a9afb0a9a748f83741951742aa68ebf37c48a18 |
npm ↗︎ unpkg ↗︎ |
@graphql-hive/cli |
0.55.0-alpha-20251128203902-8a9afb0a9a748f83741951742aa68ebf37c48a18 |
npm ↗︎ unpkg ↗︎ |
@graphql-hive/core |
0.16.0-alpha-20251128203902-8a9afb0a9a748f83741951742aa68ebf37c48a18 |
npm ↗︎ unpkg ↗︎ |
@graphql-hive/envelop |
0.39.0-alpha-20251128203902-8a9afb0a9a748f83741951742aa68ebf37c48a18 |
npm ↗︎ unpkg ↗︎ |
@graphql-hive/yoga |
0.44.0-alpha-20251128203902-8a9afb0a9a748f83741951742aa68ebf37c48a18 |
npm ↗︎ unpkg ↗︎ |
hive |
8.11.0-alpha-20251128203902-8a9afb0a9a748f83741951742aa68ebf37c48a18 |
npm ↗︎ unpkg ↗︎ |
📚 Storybook DeploymentThe latest changes are available as preview in: https://pr-7299.hive-storybook.pages.dev |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces member search and pagination functionality. The backend changes look mostly good, but there's a significant bug in the full-text search implementation that could lead to errors and incorrect results, along with a performance concern. On the frontend, the search input triggers queries on every keystroke, which should be debounced to improve performance. I've also noted a small inconsistency in how URL search parameters are handled. My detailed comments and suggestions are below.
packages/services/api/src/modules/organization/providers/organization-members.ts
Outdated
Show resolved
Hide resolved
💻 Website PreviewThe latest changes are available as preview in: https://pr-7299.hive-landing-page.pages.dev |
|
🐋 This PR was built and pushed to the following Docker images: Targets: Platforms: Image Tag: Docker Bake metadata{
"app": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/node@22.13.0-slim?platform=linux%2Famd64",
"digest": {
"sha256": "f5a0871ab03b035c58bdb3007c3d177b001c2145c18e81817b71624dcf7d8bff"
}
}
],
"invocation": {
"configSource": {
"entryPoint": "services.dockerfile"
},
"parameters": {
"frontend": "dockerfile.v0",
"args": {
"build-arg:HEALTHCHECK_CMD": "wget --spider -q http://127.0.0.1:${PORT}/api/health",
"build-arg:IMAGE_DESCRIPTION": "The app of the GraphQL Hive project.",
"build-arg:IMAGE_TITLE": "graphql-hive/app",
"build-arg:PORT": "3000",
"build-arg:RELEASE": "8a9afb0a9a748f83741951742aa68ebf37c48a18",
"build-arg:SERVICE_DIR_NAME": "@hive/app",
"context:dist": "local:dist",
"context:shared": "local:shared",
"frontend.caps": "moby.buildkit.frontend.contexts+forward",
"local-sessionid:context": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:dockerfile": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:shared": "tj3azk54mhwpw0orzx1tlo9vp"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-20cb5e8e-05da-4a15-ac7e-154e005d774a/builder-20cb5e8e-05da-4a15-ac7e-154e005d774a0/oiab29m154tjirga89tg25lla",
"containerimage.config.digest": "sha256:5b379723e441be1ca85581503dbbb062304340a5cca1eeff1fa213a446b4df44",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:8008d0e661878b40877521eaf9f9f4d2d266c22b8cefea2d5b7775108439f9d4",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:8008d0e661878b40877521eaf9f9f4d2d266c22b8cefea2d5b7775108439f9d4",
"image.name": "ghcr.io/graphql-hive/app:8a9afb0a9a748f83741951742aa68ebf37c48a18-amd64,ghcr.io/graphql-hive/app:console_1382_member_pagination_and_search-amd64"
},
"buildx.build.warnings": [
{
"vertex": "sha256:f6e04d3c0725957a8bdd2b2dd93d5c4fca4e6b7c1070ef6f825ff354451abc74",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRSRUxFQVNFJyAobGluZSAxMyk=",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "services.dockerfile",
"data": "RlJPTSBub2RlOjIyLjEzLjAtc2xpbQoKUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSB3Z2V0IGNhLWNlcnRpZmljYXRlcyAmJiBybSAtcmYgL3Zhci9saWIvYXB0L2xpc3RzLyoKCkFSRyBTRVJWSUNFX0RJUl9OQU1FCldPUktESVIgL3Vzci9zcmMvYXBwLyRTRVJWSUNFX0RJUl9OQU1FCgpDT1BZIC0tZnJvbT1kaXN0IC4gL3Vzci9zcmMvYXBwLyRTRVJWSUNFX0RJUl9OQU1FLwpDT1BZIC0tZnJvbT1zaGFyZWQgLiAvCgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXM9TUlUCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS50aXRsZT0kSU1BR0VfVElUTEUKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnZlcnNpb249JFJFTEVBU0UKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmRlc2NyaXB0aW9uPSRJTUFHRV9ERVNDUklQVElPTgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYXV0aG9ycz0iVGhlIEd1aWxkIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVuZG9yPSJLYW1pbCBLaXNpZWxhIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudXJsPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2Uuc291cmNlPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgoKRU5WIEVOVklST05NRU5UPXByb2R1Y3Rpb24KRU5WIFJFTEVBU0U9JFJFTEVBU0UKRU5WIFBPUlQ9JFBPUlQKCkhFQUxUSENIRUNLIC0taW50ZXJ2YWw9NXMgXAogIC0tdGltZW91dD01cyBcCiAgLS1zdGFydC1wZXJpb2Q9NXMgXAogIC0tcmV0cmllcz02IFwKICBDTUQgJEhFQUxUSENIRUNLX0NNRAoKRU5UUllQT0lOVCBbICIvZW50cnlwb2ludC5zaCIgXQo=",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 13
},
"end": {
"line": 13
}
}
]
},
{
"vertex": "sha256:f6e04d3c0725957a8bdd2b2dd93d5c4fca4e6b7c1070ef6f825ff354451abc74",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRJTUFHRV9ERVNDUklQVElPTicgKGxpbmUgMTQp",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "services.dockerfile",
"data": "RlJPTSBub2RlOjIyLjEzLjAtc2xpbQoKUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSB3Z2V0IGNhLWNlcnRpZmljYXRlcyAmJiBybSAtcmYgL3Zhci9saWIvYXB0L2xpc3RzLyoKCkFSRyBTRVJWSUNFX0RJUl9OQU1FCldPUktESVIgL3Vzci9zcmMvYXBwLyRTRVJWSUNFX0RJUl9OQU1FCgpDT1BZIC0tZnJvbT1kaXN0IC4gL3Vzci9zcmMvYXBwLyRTRVJWSUNFX0RJUl9OQU1FLwpDT1BZIC0tZnJvbT1zaGFyZWQgLiAvCgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXM9TUlUCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS50aXRsZT0kSU1BR0VfVElUTEUKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnZlcnNpb249JFJFTEVBU0UKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmRlc2NyaXB0aW9uPSRJTUFHRV9ERVNDUklQVElPTgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYXV0aG9ycz0iVGhlIEd1aWxkIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVuZG9yPSJLYW1pbCBLaXNpZWxhIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudXJsPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2Uuc291cmNlPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgoKRU5WIEVOVklST05NRU5UPXByb2R1Y3Rpb24KRU5WIFJFTEVBU0U9JFJFTEVBU0UKRU5WIFBPUlQ9JFBPUlQKCkhFQUxUSENIRUNLIC0taW50ZXJ2YWw9NXMgXAogIC0tdGltZW91dD01cyBcCiAgLS1zdGFydC1wZXJpb2Q9NXMgXAogIC0tcmV0cmllcz02IFwKICBDTUQgJEhFQUxUSENIRUNLX0NNRAoKRU5UUllQT0lOVCBbICIvZW50cnlwb2ludC5zaCIgXQo=",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 14
},
"end": {
"line": 14
}
}
]
},
{
"vertex": "sha256:f6e04d3c0725957a8bdd2b2dd93d5c4fca4e6b7c1070ef6f825ff354451abc74",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRSRUxFQVNFJyAobGluZSAyMSk=",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "services.dockerfile",
"data": "RlJPTSBub2RlOjIyLjEzLjAtc2xpbQoKUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSB3Z2V0IGNhLWNlcnRpZmljYXRlcyAmJiBybSAtcmYgL3Zhci9saWIvYXB0L2xpc3RzLyoKCkFSRyBTRVJWSUNFX0RJUl9OQU1FCldPUktESVIgL3Vzci9zcmMvYXBwLyRTRVJWSUNFX0RJUl9OQU1FCgpDT1BZIC0tZnJvbT1kaXN0IC4gL3Vzci9zcmMvYXBwLyRTRVJWSUNFX0RJUl9OQU1FLwpDT1BZIC0tZnJvbT1zaGFyZWQgLiAvCgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXM9TUlUCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS50aXRsZT0kSU1BR0VfVElUTEUKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnZlcnNpb249JFJFTEVBU0UKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmRlc2NyaXB0aW9uPSRJTUFHRV9ERVNDUklQVElPTgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYXV0aG9ycz0iVGhlIEd1aWxkIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVuZG9yPSJLYW1pbCBLaXNpZWxhIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudXJsPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2Uuc291cmNlPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgoKRU5WIEVOVklST05NRU5UPXByb2R1Y3Rpb24KRU5WIFJFTEVBU0U9JFJFTEVBU0UKRU5WIFBPUlQ9JFBPUlQKCkhFQUxUSENIRUNLIC0taW50ZXJ2YWw9NXMgXAogIC0tdGltZW91dD01cyBcCiAgLS1zdGFydC1wZXJpb2Q9NXMgXAogIC0tcmV0cmllcz02IFwKICBDTUQgJEhFQUxUSENIRUNLX0NNRAoKRU5UUllQT0lOVCBbICIvZW50cnlwb2ludC5zaCIgXQo=",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 21
},
"end": {
"line": 21
}
}
]
},
{
"vertex": "sha256:f6e04d3c0725957a8bdd2b2dd93d5c4fca4e6b7c1070ef6f825ff354451abc74",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRQT1JUJyAobGluZSAyMik=",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "services.dockerfile",
"data": "RlJPTSBub2RlOjIyLjEzLjAtc2xpbQoKUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSB3Z2V0IGNhLWNlcnRpZmljYXRlcyAmJiBybSAtcmYgL3Zhci9saWIvYXB0L2xpc3RzLyoKCkFSRyBTRVJWSUNFX0RJUl9OQU1FCldPUktESVIgL3Vzci9zcmMvYXBwLyRTRVJWSUNFX0RJUl9OQU1FCgpDT1BZIC0tZnJvbT1kaXN0IC4gL3Vzci9zcmMvYXBwLyRTRVJWSUNFX0RJUl9OQU1FLwpDT1BZIC0tZnJvbT1zaGFyZWQgLiAvCgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXM9TUlUCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS50aXRsZT0kSU1BR0VfVElUTEUKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnZlcnNpb249JFJFTEVBU0UKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmRlc2NyaXB0aW9uPSRJTUFHRV9ERVNDUklQVElPTgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYXV0aG9ycz0iVGhlIEd1aWxkIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVuZG9yPSJLYW1pbCBLaXNpZWxhIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudXJsPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2Uuc291cmNlPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgoKRU5WIEVOVklST05NRU5UPXByb2R1Y3Rpb24KRU5WIFJFTEVBU0U9JFJFTEVBU0UKRU5WIFBPUlQ9JFBPUlQKCkhFQUxUSENIRUNLIC0taW50ZXJ2YWw9NXMgXAogIC0tdGltZW91dD01cyBcCiAgLS1zdGFydC1wZXJpb2Q9NXMgXAogIC0tcmV0cmllcz02IFwKICBDTUQgJEhFQUxUSENIRUNLX0NNRAoKRU5UUllQT0lOVCBbICIvZW50cnlwb2ludC5zaCIgXQo=",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 22
},
"end": {
"line": 22
}
}
]
},
{
"vertex": "sha256:583052b062efb8d01f235595e5ab8c48ca62955018c0625c2db717b5030370e5",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRSRUxFQVNFJyAobGluZSAxMik=",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "migrations.dockerfile",
"data": "RlJPTSBub2RlOjIyLjEzLjAtc2xpbQoKUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSBjYS1jZXJ0aWZpY2F0ZXMKCldPUktESVIgL3Vzci9zcmMvYXBwCgpDT1BZIC0tZnJvbT1kaXN0IC4gL3Vzci9zcmMvYXBwLwpDT1BZIC0tZnJvbT1zaGFyZWQgLiAvCgpFTlYgRU5WSVJPTk1FTlQ9cHJvZHVjdGlvbgpFTlYgTk9ERV9FTlY9cHJvZHVjdGlvbgpFTlYgUkVMRUFTRT0kUkVMRUFTRQoKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmxpY2Vuc2VzPU1JVApMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudGl0bGU9JElNQUdFX1RJVExFCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS52ZXJzaW9uPSRSRUxFQVNFCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5kZXNjcmlwdGlvbj0kSU1BR0VfREVTQ1JJUFRJT04KTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmF1dGhvcnM9IlRoZSBHdWlsZCIKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnZlbmRvcj0iS2FtaWwgS2lzaWVsYSIKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnVybD0iaHR0cHM6Ly9naXRodWIuY29tL2dyYXBocWwtaGl2ZS9wbGF0Zm9ybSIKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnNvdXJjZT0iaHR0cHM6Ly9naXRodWIuY29tL2dyYXBocWwtaGl2ZS9wbGF0Zm9ybSIKCkVOVFJZUE9JTlQgWyAiL2VudHJ5cG9pbnQuc2giIF0K",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 12
},
"end": {
"line": 12
}
}
]
},
{
"vertex": "sha256:583052b062efb8d01f235595e5ab8c48ca62955018c0625c2db717b5030370e5",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRJTUFHRV9USVRMRScgKGxpbmUgMTUp",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "migrations.dockerfile",
"data": "RlJPTSBub2RlOjIyLjEzLjAtc2xpbQoKUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSBjYS1jZXJ0aWZpY2F0ZXMKCldPUktESVIgL3Vzci9zcmMvYXBwCgpDT1BZIC0tZnJvbT1kaXN0IC4gL3Vzci9zcmMvYXBwLwpDT1BZIC0tZnJvbT1zaGFyZWQgLiAvCgpFTlYgRU5WSVJPTk1FTlQ9cHJvZHVjdGlvbgpFTlYgTk9ERV9FTlY9cHJvZHVjdGlvbgpFTlYgUkVMRUFTRT0kUkVMRUFTRQoKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmxpY2Vuc2VzPU1JVApMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudGl0bGU9JElNQUdFX1RJVExFCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS52ZXJzaW9uPSRSRUxFQVNFCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5kZXNjcmlwdGlvbj0kSU1BR0VfREVTQ1JJUFRJT04KTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmF1dGhvcnM9IlRoZSBHdWlsZCIKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnZlbmRvcj0iS2FtaWwgS2lzaWVsYSIKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnVybD0iaHR0cHM6Ly9naXRodWIuY29tL2dyYXBocWwtaGl2ZS9wbGF0Zm9ybSIKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnNvdXJjZT0iaHR0cHM6Ly9naXRodWIuY29tL2dyYXBocWwtaGl2ZS9wbGF0Zm9ybSIKCkVOVFJZUE9JTlQgWyAiL2VudHJ5cG9pbnQuc2giIF0K",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 15
},
"end": {
"line": 15
}
}
]
},
{
"vertex": "sha256:583052b062efb8d01f235595e5ab8c48ca62955018c0625c2db717b5030370e5",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRJTUFHRV9ERVNDUklQVElPTicgKGxpbmUgMTcp",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "migrations.dockerfile",
"data": "RlJPTSBub2RlOjIyLjEzLjAtc2xpbQoKUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSBjYS1jZXJ0aWZpY2F0ZXMKCldPUktESVIgL3Vzci9zcmMvYXBwCgpDT1BZIC0tZnJvbT1kaXN0IC4gL3Vzci9zcmMvYXBwLwpDT1BZIC0tZnJvbT1zaGFyZWQgLiAvCgpFTlYgRU5WSVJPTk1FTlQ9cHJvZHVjdGlvbgpFTlYgTk9ERV9FTlY9cHJvZHVjdGlvbgpFTlYgUkVMRUFTRT0kUkVMRUFTRQoKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmxpY2Vuc2VzPU1JVApMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudGl0bGU9JElNQUdFX1RJVExFCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS52ZXJzaW9uPSRSRUxFQVNFCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5kZXNjcmlwdGlvbj0kSU1BR0VfREVTQ1JJUFRJT04KTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmF1dGhvcnM9IlRoZSBHdWlsZCIKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnZlbmRvcj0iS2FtaWwgS2lzaWVsYSIKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnVybD0iaHR0cHM6Ly9naXRodWIuY29tL2dyYXBocWwtaGl2ZS9wbGF0Zm9ybSIKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnNvdXJjZT0iaHR0cHM6Ly9naXRodWIuY29tL2dyYXBocWwtaGl2ZS9wbGF0Zm9ybSIKCkVOVFJZUE9JTlQgWyAiL2VudHJ5cG9pbnQuc2giIF0K",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 17
},
"end": {
"line": 17
}
}
]
},
{
"vertex": "sha256:f6e04d3c0725957a8bdd2b2dd93d5c4fca4e6b7c1070ef6f825ff354451abc74",
"level": 1,
"short": "VW5kZWZpbmVkVmFyOiBVc2FnZSBvZiB1bmRlZmluZWQgdmFyaWFibGUgJyRJTUFHRV9USVRMRScgKGxpbmUgMTIp",
"detail": [
"VmFyaWFibGVzIHNob3VsZCBiZSBkZWZpbmVkIGJlZm9yZSB0aGVpciB1c2U="
],
"url": "https://docs.docker.com/go/dockerfile/rule/undefined-var/",
"sourceInfo": {
"filename": "services.dockerfile",
"data": "RlJPTSBub2RlOjIyLjEzLjAtc2xpbQoKUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSB3Z2V0IGNhLWNlcnRpZmljYXRlcyAmJiBybSAtcmYgL3Zhci9saWIvYXB0L2xpc3RzLyoKCkFSRyBTRVJWSUNFX0RJUl9OQU1FCldPUktESVIgL3Vzci9zcmMvYXBwLyRTRVJWSUNFX0RJUl9OQU1FCgpDT1BZIC0tZnJvbT1kaXN0IC4gL3Vzci9zcmMvYXBwLyRTRVJWSUNFX0RJUl9OQU1FLwpDT1BZIC0tZnJvbT1zaGFyZWQgLiAvCgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXM9TUlUCkxBQkVMIG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS50aXRsZT0kSU1BR0VfVElUTEUKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnZlcnNpb249JFJFTEVBU0UKTEFCRUwgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmRlc2NyaXB0aW9uPSRJTUFHRV9ERVNDUklQVElPTgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYXV0aG9ycz0iVGhlIEd1aWxkIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudmVuZG9yPSJLYW1pbCBLaXNpZWxhIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudXJsPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgpMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2Uuc291cmNlPSJodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC1oaXZlL3BsYXRmb3JtIgoKRU5WIEVOVklST05NRU5UPXByb2R1Y3Rpb24KRU5WIFJFTEVBU0U9JFJFTEVBU0UKRU5WIFBPUlQ9JFBPUlQKCkhFQUxUSENIRUNLIC0taW50ZXJ2YWw9NXMgXAogIC0tdGltZW91dD01cyBcCiAgLS1zdGFydC1wZXJpb2Q9NXMgXAogIC0tcmV0cmllcz02IFwKICBDTUQgJEhFQUxUSENIRUNLX0NNRAoKRU5UUllQT0lOVCBbICIvZW50cnlwb2ludC5zaCIgXQo=",
"language": "Dockerfile"
},
"range": [
{
"start": {
"line": 12
},
"end": {
"line": 12
}
}
]
}
],
"commerce": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/node@22.13.0-slim?platform=linux%2Famd64",
"digest": {
"sha256": "f5a0871ab03b035c58bdb3007c3d177b001c2145c18e81817b71624dcf7d8bff"
}
}
],
"invocation": {
"configSource": {
"entryPoint": "services.dockerfile"
},
"parameters": {
"frontend": "dockerfile.v0",
"args": {
"build-arg:HEALTHCHECK_CMD": "wget --spider -q http://127.0.0.1:${PORT}/_readiness",
"build-arg:IMAGE_DESCRIPTION": "The commerce service of the GraphQL Hive project.",
"build-arg:IMAGE_TITLE": "graphql-hive/commerce",
"build-arg:PORT": "3010",
"build-arg:RELEASE": "8a9afb0a9a748f83741951742aa68ebf37c48a18",
"build-arg:SERVICE_DIR_NAME": "@hive/commerce",
"context:dist": "local:dist",
"context:shared": "local:shared",
"frontend.caps": "moby.buildkit.frontend.contexts+forward",
"local-sessionid:context": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:dockerfile": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:shared": "tj3azk54mhwpw0orzx1tlo9vp"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-20cb5e8e-05da-4a15-ac7e-154e005d774a/builder-20cb5e8e-05da-4a15-ac7e-154e005d774a0/woktchgns4d89p7ojkzz7g6vr",
"containerimage.config.digest": "sha256:127f4c83b959e00138174ce43ad68604c7c14aaf1ffafb3618be1be837519d26",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:8f288cb0c37ffe79658b77f9c6aec82ec04bf633273d986c9ff1c54a67316d2c",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:8f288cb0c37ffe79658b77f9c6aec82ec04bf633273d986c9ff1c54a67316d2c",
"image.name": "ghcr.io/graphql-hive/commerce:8a9afb0a9a748f83741951742aa68ebf37c48a18-amd64,ghcr.io/graphql-hive/commerce:console_1382_member_pagination_and_search-amd64"
},
"composition-federation-2": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/node@22.13.0-slim?platform=linux%2Famd64",
"digest": {
"sha256": "f5a0871ab03b035c58bdb3007c3d177b001c2145c18e81817b71624dcf7d8bff"
}
}
],
"invocation": {
"configSource": {
"entryPoint": "services.dockerfile"
},
"parameters": {
"frontend": "dockerfile.v0",
"args": {
"build-arg:HEALTHCHECK_CMD": "wget --spider -q http://127.0.0.1:${PORT}/_readiness",
"build-arg:IMAGE_DESCRIPTION": "Federation 2 Composition Service for GraphQL Hive.",
"build-arg:IMAGE_TITLE": "graphql-hive/composition-federation-2",
"build-arg:PORT": "3069",
"build-arg:RELEASE": "8a9afb0a9a748f83741951742aa68ebf37c48a18",
"build-arg:SERVICE_DIR_NAME": "@hive/external-composition",
"context:dist": "local:dist",
"context:shared": "local:shared",
"frontend.caps": "moby.buildkit.frontend.contexts+forward",
"local-sessionid:context": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:dockerfile": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:shared": "tj3azk54mhwpw0orzx1tlo9vp"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-20cb5e8e-05da-4a15-ac7e-154e005d774a/builder-20cb5e8e-05da-4a15-ac7e-154e005d774a0/v0kwj1zr2k2oyiqc1rrfttnjt",
"containerimage.config.digest": "sha256:a6994c620ae474ae8492145875acf97630449121e4c3e17d79ed53dfcf496514",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:af5a1e8febce8b795ea84833e84f4920f51bb17e70ce4393950f71cb5cc836ac",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:af5a1e8febce8b795ea84833e84f4920f51bb17e70ce4393950f71cb5cc836ac",
"image.name": "ghcr.io/graphql-hive/composition-federation-2:8a9afb0a9a748f83741951742aa68ebf37c48a18-amd64,ghcr.io/graphql-hive/composition-federation-2:console_1382_member_pagination_and_search-amd64"
},
"emails": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/node@22.13.0-slim?platform=linux%2Famd64",
"digest": {
"sha256": "f5a0871ab03b035c58bdb3007c3d177b001c2145c18e81817b71624dcf7d8bff"
}
}
],
"invocation": {
"configSource": {
"entryPoint": "services.dockerfile"
},
"parameters": {
"frontend": "dockerfile.v0",
"args": {
"build-arg:HEALTHCHECK_CMD": "wget --spider -q http://127.0.0.1:${PORT}/_readiness",
"build-arg:IMAGE_DESCRIPTION": "The emails service of the GraphQL Hive project.",
"build-arg:IMAGE_TITLE": "graphql-hive/emails",
"build-arg:PORT": "3006",
"build-arg:RELEASE": "8a9afb0a9a748f83741951742aa68ebf37c48a18",
"build-arg:SERVICE_DIR_NAME": "@hive/emails",
"context:dist": "local:dist",
"context:shared": "local:shared",
"frontend.caps": "moby.buildkit.frontend.contexts+forward",
"local-sessionid:context": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:dockerfile": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:shared": "tj3azk54mhwpw0orzx1tlo9vp"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-20cb5e8e-05da-4a15-ac7e-154e005d774a/builder-20cb5e8e-05da-4a15-ac7e-154e005d774a0/bp7x1vb84kgj1kpqp45kpdo2q",
"containerimage.config.digest": "sha256:f87bcfc2d141ed34266e777b119cf7843f356254ad5a2707b90c2aa908e04481",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:0c963b7bd007303684166ccf980cad441e70c2036f17284c0a2b8e59045d9a2c",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:0c963b7bd007303684166ccf980cad441e70c2036f17284c0a2b8e59045d9a2c",
"image.name": "ghcr.io/graphql-hive/emails:8a9afb0a9a748f83741951742aa68ebf37c48a18-amd64,ghcr.io/graphql-hive/emails:console_1382_member_pagination_and_search-amd64"
},
"otel-collector": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/alpine@3.14?platform=linux%2Famd64",
"digest": {
"sha256": "0f2d5c38dd7a4f4f733e688e3a6733cb5ab1ac6e3cb4603a5dd564e5bfb80eed"
}
},
{
"uri": "pkg:docker/golang@1.25-bookworm?platform=linux%2Famd64",
"digest": {
"sha256": "e17419604b6d1f9bc245694425f0ec9b1b53685c80850900a376fb10cb0f70cb"
}
}
],
"invocation": {
"configSource": {
"entryPoint": "otel-collector.dockerfile"
},
"parameters": {
"frontend": "dockerfile.v0",
"args": {
"build-arg:IMAGE_DESCRIPTION": "OTEL Collector for GraphQL Hive.",
"build-arg:IMAGE_TITLE": "graphql-hive/otel-collector",
"build-arg:RELEASE": "8a9afb0a9a748f83741951742aa68ebf37c48a18",
"local-sessionid:dockerfile": "tj3azk54mhwpw0orzx1tlo9vp"
},
"locals": [
{
"name": "context"
},
{
"name": "dockerfile"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-20cb5e8e-05da-4a15-ac7e-154e005d774a/builder-20cb5e8e-05da-4a15-ac7e-154e005d774a0/7ezuuoibbpbkyctl6f6uiysvw",
"containerimage.config.digest": "sha256:bbb24dd8948800ff66d5cee7989f8afadcdb4297b7994943b2f9291614925492",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:85c53b193aa937b59ac1e12dd07d241469091650c19efc13cca2f53183226ee6",
"size": 1089,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:85c53b193aa937b59ac1e12dd07d241469091650c19efc13cca2f53183226ee6",
"image.name": "ghcr.io/graphql-hive/otel-collector:8a9afb0a9a748f83741951742aa68ebf37c48a18-amd64,ghcr.io/graphql-hive/otel-collector:console_1382_member_pagination_and_search-amd64"
},
"policy": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/node@22.13.0-slim?platform=linux%2Famd64",
"digest": {
"sha256": "f5a0871ab03b035c58bdb3007c3d177b001c2145c18e81817b71624dcf7d8bff"
}
}
],
"invocation": {
"configSource": {
"entryPoint": "services.dockerfile"
},
"parameters": {
"frontend": "dockerfile.v0",
"args": {
"build-arg:HEALTHCHECK_CMD": "wget --spider -q http://127.0.0.1:${PORT}/_readiness",
"build-arg:IMAGE_DESCRIPTION": "The policy service of the GraphQL Hive project.",
"build-arg:IMAGE_TITLE": "graphql-hive/policy",
"build-arg:PORT": "3012",
"build-arg:RELEASE": "8a9afb0a9a748f83741951742aa68ebf37c48a18",
"build-arg:SERVICE_DIR_NAME": "@hive/policy",
"context:dist": "local:dist",
"context:shared": "local:shared",
"frontend.caps": "moby.buildkit.frontend.contexts+forward",
"local-sessionid:context": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:dockerfile": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:shared": "tj3azk54mhwpw0orzx1tlo9vp"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-20cb5e8e-05da-4a15-ac7e-154e005d774a/builder-20cb5e8e-05da-4a15-ac7e-154e005d774a0/ugjrl7s6skn3113nn69ckkuli",
"containerimage.config.digest": "sha256:97c619027a2922349ac641ac73fc6ce0edb28ae00976abff2dbb13c0d11be625",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:9cf9cf1c12e2705d4f7039346fa6028b1acd4b7b3308dc4f39ce8781a1216337",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:9cf9cf1c12e2705d4f7039346fa6028b1acd4b7b3308dc4f39ce8781a1216337",
"image.name": "ghcr.io/graphql-hive/policy:8a9afb0a9a748f83741951742aa68ebf37c48a18-amd64,ghcr.io/graphql-hive/policy:console_1382_member_pagination_and_search-amd64"
},
"schema": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/node@22.13.0-slim?platform=linux%2Famd64",
"digest": {
"sha256": "f5a0871ab03b035c58bdb3007c3d177b001c2145c18e81817b71624dcf7d8bff"
}
}
],
"invocation": {
"configSource": {
"entryPoint": "services.dockerfile"
},
"parameters": {
"frontend": "dockerfile.v0",
"args": {
"build-arg:HEALTHCHECK_CMD": "wget --spider -q http://127.0.0.1:${PORT}/_readiness",
"build-arg:IMAGE_DESCRIPTION": "The schema service of the GraphQL Hive project.",
"build-arg:IMAGE_TITLE": "graphql-hive/schema",
"build-arg:PORT": "3002",
"build-arg:RELEASE": "8a9afb0a9a748f83741951742aa68ebf37c48a18",
"build-arg:SERVICE_DIR_NAME": "@hive/schema",
"context:dist": "local:dist",
"context:shared": "local:shared",
"frontend.caps": "moby.buildkit.frontend.contexts+forward",
"local-sessionid:context": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:dockerfile": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:shared": "tj3azk54mhwpw0orzx1tlo9vp"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-20cb5e8e-05da-4a15-ac7e-154e005d774a/builder-20cb5e8e-05da-4a15-ac7e-154e005d774a0/y1g7lezjwcl8bm1aynilzihdh",
"containerimage.config.digest": "sha256:3132835a301d1dcded6476227639ffb58b9eb136181519c25033fd799a2bfffb",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:59297717b3fec4e577c5664a9f9bd1bb691bfd0b771b14fc23ca9497305f1d08",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:59297717b3fec4e577c5664a9f9bd1bb691bfd0b771b14fc23ca9497305f1d08",
"image.name": "ghcr.io/graphql-hive/schema:8a9afb0a9a748f83741951742aa68ebf37c48a18-amd64,ghcr.io/graphql-hive/schema:console_1382_member_pagination_and_search-amd64"
},
"server": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/node@22.13.0-slim?platform=linux%2Famd64",
"digest": {
"sha256": "f5a0871ab03b035c58bdb3007c3d177b001c2145c18e81817b71624dcf7d8bff"
}
}
],
"invocation": {
"configSource": {
"entryPoint": "services.dockerfile"
},
"parameters": {
"frontend": "dockerfile.v0",
"args": {
"build-arg:HEALTHCHECK_CMD": "wget --spider -q http://127.0.0.1:${PORT}/_readiness",
"build-arg:IMAGE_DESCRIPTION": "The server service of the GraphQL Hive project.",
"build-arg:IMAGE_TITLE": "graphql-hive/server",
"build-arg:PORT": "3001",
"build-arg:RELEASE": "8a9afb0a9a748f83741951742aa68ebf37c48a18",
"build-arg:SERVICE_DIR_NAME": "@hive/server",
"context:dist": "local:dist",
"context:shared": "local:shared",
"frontend.caps": "moby.buildkit.frontend.contexts+forward",
"local-sessionid:context": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:dockerfile": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:shared": "tj3azk54mhwpw0orzx1tlo9vp"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-20cb5e8e-05da-4a15-ac7e-154e005d774a/builder-20cb5e8e-05da-4a15-ac7e-154e005d774a0/s5sekms8gpby0k23qvi0jhcvj",
"containerimage.config.digest": "sha256:770b2ad28e7bfa9d91fb96eb1df7266d0ac26dd17a2baaac6cb3a58a26bef18b",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:73f1fa651ee3e153ea76c9f63b9dce770e28de3456b2be5cb4b624685de7049d",
"size": 2076,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:73f1fa651ee3e153ea76c9f63b9dce770e28de3456b2be5cb4b624685de7049d",
"image.name": "ghcr.io/graphql-hive/server:8a9afb0a9a748f83741951742aa68ebf37c48a18-amd64,ghcr.io/graphql-hive/server:console_1382_member_pagination_and_search-amd64"
},
"storage": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/node@22.13.0-slim?platform=linux%2Famd64",
"digest": {
"sha256": "f5a0871ab03b035c58bdb3007c3d177b001c2145c18e81817b71624dcf7d8bff"
}
}
],
"invocation": {
"configSource": {
"entryPoint": "migrations.dockerfile"
},
"parameters": {
"frontend": "dockerfile.v0",
"args": {
"build-arg:IMAGE_DESCRIPTION": "The migrations service of the GraphQL Hive project.",
"build-arg:IMAGE_TITLE": "graphql-hive/storage",
"build-arg:RELEASE": "8a9afb0a9a748f83741951742aa68ebf37c48a18",
"context:dist": "local:dist",
"context:shared": "local:shared",
"frontend.caps": "moby.buildkit.frontend.contexts+forward",
"local-sessionid:context": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:dockerfile": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:shared": "tj3azk54mhwpw0orzx1tlo9vp"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-20cb5e8e-05da-4a15-ac7e-154e005d774a/builder-20cb5e8e-05da-4a15-ac7e-154e005d774a0/g8f1relo3e07he9zstks9fpof",
"containerimage.config.digest": "sha256:2aea115b760fdc9d321f5ed64ba025b1fb89560ab9a6156b475173275a5b5ade",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:0c2ca05dcf41e41a6ad8be86e5c72bb5b5b2e5af7d21298f384c857933048bf5",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:0c2ca05dcf41e41a6ad8be86e5c72bb5b5b2e5af7d21298f384c857933048bf5",
"image.name": "ghcr.io/graphql-hive/storage:8a9afb0a9a748f83741951742aa68ebf37c48a18-amd64,ghcr.io/graphql-hive/storage:console_1382_member_pagination_and_search-amd64"
},
"tokens": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/node@22.13.0-slim?platform=linux%2Famd64",
"digest": {
"sha256": "f5a0871ab03b035c58bdb3007c3d177b001c2145c18e81817b71624dcf7d8bff"
}
}
],
"invocation": {
"configSource": {
"entryPoint": "services.dockerfile"
},
"parameters": {
"frontend": "dockerfile.v0",
"args": {
"build-arg:HEALTHCHECK_CMD": "wget --spider -q http://127.0.0.1:${PORT}/_readiness",
"build-arg:IMAGE_DESCRIPTION": "The tokens service of the GraphQL Hive project.",
"build-arg:IMAGE_TITLE": "graphql-hive/tokens",
"build-arg:PORT": "3003",
"build-arg:RELEASE": "8a9afb0a9a748f83741951742aa68ebf37c48a18",
"build-arg:SERVICE_DIR_NAME": "@hive/tokens",
"context:dist": "local:dist",
"context:shared": "local:shared",
"frontend.caps": "moby.buildkit.frontend.contexts+forward",
"local-sessionid:context": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:dockerfile": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:shared": "tj3azk54mhwpw0orzx1tlo9vp"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-20cb5e8e-05da-4a15-ac7e-154e005d774a/builder-20cb5e8e-05da-4a15-ac7e-154e005d774a0/77i0ieq5ztj2u05jagx9h1hnc",
"containerimage.config.digest": "sha256:6c48a4bcbf5044c01d4d29d8daa0cceb6be5285957c1d1fc95c1365c6f2d1ce7",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:c555734ae0fca0515c02960cd8932b31e8ea543e50199345eb540c9c41e2943f",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:c555734ae0fca0515c02960cd8932b31e8ea543e50199345eb540c9c41e2943f",
"image.name": "ghcr.io/graphql-hive/tokens:8a9afb0a9a748f83741951742aa68ebf37c48a18-amd64,ghcr.io/graphql-hive/tokens:console_1382_member_pagination_and_search-amd64"
},
"usage": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/node@22.13.0-slim?platform=linux%2Famd64",
"digest": {
"sha256": "f5a0871ab03b035c58bdb3007c3d177b001c2145c18e81817b71624dcf7d8bff"
}
}
],
"invocation": {
"configSource": {
"entryPoint": "services.dockerfile"
},
"parameters": {
"frontend": "dockerfile.v0",
"args": {
"build-arg:HEALTHCHECK_CMD": "wget --spider -q http://127.0.0.1:${PORT}/_readiness",
"build-arg:IMAGE_DESCRIPTION": "The usage ingestor service of the GraphQL Hive project.",
"build-arg:IMAGE_TITLE": "graphql-hive/usage",
"build-arg:PORT": "3006",
"build-arg:RELEASE": "8a9afb0a9a748f83741951742aa68ebf37c48a18",
"build-arg:SERVICE_DIR_NAME": "@hive/usage",
"context:dist": "local:dist",
"context:shared": "local:shared",
"frontend.caps": "moby.buildkit.frontend.contexts+forward",
"local-sessionid:context": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:dockerfile": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:shared": "tj3azk54mhwpw0orzx1tlo9vp"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-20cb5e8e-05da-4a15-ac7e-154e005d774a/builder-20cb5e8e-05da-4a15-ac7e-154e005d774a0/lx3wumgfdcz0zuu8vcdmn0wek",
"containerimage.config.digest": "sha256:87046175b8e6e1218cea785d181b30a8298d715ee7a050934bbe896a5fa55743",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:677751e6d6d35f253e3e935af6bd688ffe11e4f78c717c16a6857326e14fb3af",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:677751e6d6d35f253e3e935af6bd688ffe11e4f78c717c16a6857326e14fb3af",
"image.name": "ghcr.io/graphql-hive/usage:8a9afb0a9a748f83741951742aa68ebf37c48a18-amd64,ghcr.io/graphql-hive/usage:console_1382_member_pagination_and_search-amd64"
},
"usage-ingestor": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/node@22.13.0-slim?platform=linux%2Famd64",
"digest": {
"sha256": "f5a0871ab03b035c58bdb3007c3d177b001c2145c18e81817b71624dcf7d8bff"
}
}
],
"invocation": {
"configSource": {
"entryPoint": "services.dockerfile"
},
"parameters": {
"frontend": "dockerfile.v0",
"args": {
"build-arg:HEALTHCHECK_CMD": "wget --spider -q http://127.0.0.1:${PORT}/_readiness",
"build-arg:IMAGE_DESCRIPTION": "The usage ingestor service of the GraphQL Hive project.",
"build-arg:IMAGE_TITLE": "graphql-hive/usage-ingestor",
"build-arg:PORT": "3007",
"build-arg:RELEASE": "8a9afb0a9a748f83741951742aa68ebf37c48a18",
"build-arg:SERVICE_DIR_NAME": "@hive/usage-ingestor",
"context:dist": "local:dist",
"context:shared": "local:shared",
"frontend.caps": "moby.buildkit.frontend.contexts+forward",
"local-sessionid:context": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:dockerfile": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:shared": "tj3azk54mhwpw0orzx1tlo9vp"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-20cb5e8e-05da-4a15-ac7e-154e005d774a/builder-20cb5e8e-05da-4a15-ac7e-154e005d774a0/kl8v2dxu3007u08uf625s9yg6",
"containerimage.config.digest": "sha256:8537e542e7bdc2fdc5f6f68baa9d31354030c44d57bbe50ce9c024035cc6b371",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:d7e604a1990a53e3a8fdc4a4c624f6e7b4db843794a40ee59ca0c9d5319e0bb2",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:d7e604a1990a53e3a8fdc4a4c624f6e7b4db843794a40ee59ca0c9d5319e0bb2",
"image.name": "ghcr.io/graphql-hive/usage-ingestor:8a9afb0a9a748f83741951742aa68ebf37c48a18-amd64,ghcr.io/graphql-hive/usage-ingestor:console_1382_member_pagination_and_search-amd64"
},
"webhooks": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/node@22.13.0-slim?platform=linux%2Famd64",
"digest": {
"sha256": "f5a0871ab03b035c58bdb3007c3d177b001c2145c18e81817b71624dcf7d8bff"
}
}
],
"invocation": {
"configSource": {
"entryPoint": "services.dockerfile"
},
"parameters": {
"frontend": "dockerfile.v0",
"args": {
"build-arg:HEALTHCHECK_CMD": "wget --spider -q http://127.0.0.1:${PORT}/_readiness",
"build-arg:IMAGE_DESCRIPTION": "The webhooks ingestor service of the GraphQL Hive project.",
"build-arg:IMAGE_TITLE": "graphql-hive/webhooks",
"build-arg:PORT": "3005",
"build-arg:RELEASE": "8a9afb0a9a748f83741951742aa68ebf37c48a18",
"build-arg:SERVICE_DIR_NAME": "@hive/webhooks",
"context:dist": "local:dist",
"context:shared": "local:shared",
"frontend.caps": "moby.buildkit.frontend.contexts+forward",
"local-sessionid:context": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:dockerfile": "tj3azk54mhwpw0orzx1tlo9vp",
"local-sessionid:shared": "tj3azk54mhwpw0orzx1tlo9vp"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-20cb5e8e-05da-4a15-ac7e-154e005d774a/builder-20cb5e8e-05da-4a15-ac7e-154e005d774a0/gpe375yo3eln74yry0dbzdhgu",
"containerimage.config.digest": "sha256:4b56c93f0f2360b4f4b106a0a123fa23822d54f39cc64c499d728c570056ff12",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:4eea2a1c3b7e8e8f0f7e5caaa11d9c03c6accd24e466dfeaf39d40332e0743c5",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:4eea2a1c3b7e8e8f0f7e5caaa11d9c03c6accd24e466dfeaf39d40332e0743c5",
"image.name": "ghcr.io/graphql-hive/webhooks:8a9afb0a9a748f83741951742aa68ebf37c48a18-amd64,ghcr.io/graphql-hive/webhooks:console_1382_member_pagination_and_search-amd64"
}
} |
…ecessary view" This reverts commit e1d5da1.
| export default { | ||
| name: '2025.11.25T00-00-00.members-search.ts', | ||
| run: ({ sql }) => sql` | ||
| CREATE EXTENSION IF NOT EXISTS pg_trgm; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this require additional configuration to our azure database? Please make sure to test this migration on the dev environment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
😢
SQL Error [0A000]: ERROR: extension "pg_trgm" is not allow-listed for users in Azure Database for PostgreSQL
@jdolle we need to make sure we can introduce this extension without downtime
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added to allow list per https://learn.microsoft.com/en-us/azure/postgresql/extensions/how-to-allow-extensions?tabs=allow-extensions-portal
There was no downtime when enabling this and there are no special considerations for the pg_trgm extension that would cause downtime, since it's not instantly changing behavior at install -- it's enabling more ways to index for searching.
For adding the index -- I'm not concerned due to the size of the table. The migration may take a few seconds in the background. And this will slightly increase create/update times for these records but again due to the size of the table, and also because of how infrequently these records are created/updated, this should not be an issue.
n1ru4l
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My main concern is https://github.com/graphql-hive/console/pull/7299/files#r2564157013
Aside from that I added additional comments that would be nice to address, but not too crucial from my side.
|
One final tweak to the |
Background
This PR improves the
org/membersroute by adding pagination and filtering based on username or emaillDescription
membersandassigned roleui