-
Notifications
You must be signed in to change notification settings - Fork 122
New ecosystem illustration #7301
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 @hasparus, 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 integrates a redesigned ecosystem illustration into the documentation site. The update focuses on a clearer, static visual representation, moving away from a previous animated approach to ensure a smoother user experience. It involves substantial refactoring of the illustration component and the addition of new SVG assets for various technology logos. 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
|
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 refactors the ecosystem illustration to a simpler, static version, which is a great improvement. The code is cleaner and easier to maintain. I've identified some dead code and minor styling issues that can be addressed to further improve the implementation.
| } | ||
| className="z-20" | ||
| > | ||
| <HiveIcon className="size-12 [&>g]:fill-[url(#linear-blue)] [&>g]:stroke-[url(#linear-white)] [&>g]:stroke-[0.2px]" /> | ||
| </Node> | ||
| </div> | ||
| <p className={cn('relative text-white/80', styles.text)}> | ||
| {/* We use the longest text to ensure we have enough space. */} | ||
| <span className="invisible">{longestEdgeText}</span> | ||
| {edgeTexts.map((text, i) => { | ||
| return ( | ||
| <span | ||
| key={i} | ||
| className={cn( | ||
| 'absolute inset-0', | ||
| // Makes it accessible by crawlers. | ||
| highlightedEdge !== null && highlightedEdge - 1 === i ? 'visible' : 'invisible', | ||
| )} | ||
| > | ||
| {text} | ||
| </span> | ||
| ); | ||
| })} | ||
| </p> | ||
| </div> | ||
| ); | ||
| } | ||
|
|
||
| interface EdgeProps extends React.HTMLAttributes<HTMLElement> { | ||
| highlighted: boolean; | ||
| top?: boolean; | ||
| left?: boolean; | ||
| bottom?: boolean; | ||
| } | ||
|
|
||
| function Edge({ highlighted, top, bottom, left, className, ...rest }: EdgeProps) { | ||
| function Edge({ top, bottom, left, className, ...rest }: EdgeProps) { | ||
| return ( | ||
| <div | ||
| style={{ '--bw': highlighted ? '2px' : '1px' }} | ||
| className={cn( | ||
| className, | ||
| '[&>*]:transition-colors [&>*]:duration-500 [&>:nth-child(odd)]:border-green-700', | ||
| '[&>:nth-child(odd)]:border-green-700', |
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.
| } | ||
|
|
||
| interface EdgeLabelProps extends React.HTMLAttributes<HTMLElement> { | ||
| onPointerOver: React.PointerEventHandler<HTMLElement>; | ||
| } | ||
| function EdgeLabel(props: EdgeLabelProps) { | ||
| return ( | ||
| <div | ||
| className={ | ||
| 'flex size-8 h-[var(--label-h)] items-center justify-center' + | ||
| ' cursor-default rounded bg-green-700 text-sm font-medium leading-5' + | ||
| ' hover:ring-2 hover:ring-green-700' | ||
| } | ||
| {...props} | ||
| /> | ||
| ); | ||
| } | ||
|
|
||
| interface NodeProps extends Omit<React.HTMLAttributes<HTMLElement>, 'title'> { | ||
| title: ReactNode; | ||
| description?: ReactNode; | ||
| edges: number[]; | ||
| highlightedEdge: number | null; | ||
| onHighlight: (edges: number[]) => void; | ||
| } |
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.
The description && 'flex-row' conditional class overrides the responsive flex-direction: column style on small screens, causing layout issues. Since flex-row is the default for flex, this conditional is not needed for larger screens and is detrimental to the responsive design.
| } | |
| interface EdgeLabelProps extends React.HTMLAttributes<HTMLElement> { | |
| onPointerOver: React.PointerEventHandler<HTMLElement>; | |
| } | |
| function EdgeLabel(props: EdgeLabelProps) { | |
| return ( | |
| <div | |
| className={ | |
| 'flex size-8 h-[var(--label-h)] items-center justify-center' + | |
| ' cursor-default rounded bg-green-700 text-sm font-medium leading-5' + | |
| ' hover:ring-2 hover:ring-green-700' | |
| } | |
| {...props} | |
| /> | |
| ); | |
| } | |
| interface NodeProps extends Omit<React.HTMLAttributes<HTMLElement>, 'title'> { | |
| title: ReactNode; | |
| description?: ReactNode; | |
| edges: number[]; | |
| highlightedEdge: number | null; | |
| onHighlight: (edges: number[]) => void; | |
| } | |
| className={cn( | |
| styles.node, | |
| 'relative z-10 flex min-h-[96px] items-center gap-4 rounded-2xl bg-[linear-gradient(135deg,rgb(255_255_255/0.10),rgb(255_255_255/0.20))] p-4 backdrop-blur-md xl:p-[22px] [&>svg]:shrink-0', | |
| className, | |
| )} |
| <DashedLine | ||
| className="translate-x-[1.5px] translate-y-[-1.5px] self-start text-green-700" | ||
| fill="none" | ||
| stroke="currentColor" | ||
| /> |
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.
The DashedLine component already sets fill="none" and stroke="currentColor" as default props. Passing them here is redundant. This also applies to the other usages of DashedLine in this file.
| <DashedLine | |
| className="translate-x-[1.5px] translate-y-[-1.5px] self-start text-green-700" | |
| fill="none" | |
| stroke="currentColor" | |
| /> | |
| <DashedLine | |
| className="translate-x-[1.5px] translate-y-[-1.5px] self-start text-green-700" | |
| /> |
| } | ||
| }} | ||
| onClick={() => onHighlight(edges)} | ||
| className={cn( |
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.
The text-left class prevents the text from being centered on small screens, which seems to be the intention of text-align: center on the parent .node. Removing it will allow both the title and description to be centered on small screens as intended.
| className={cn( | |
| <div className="flex flex-col"> |
📚 Storybook DeploymentThe latest changes are available as preview in: https://pr-7301.hive-storybook.pages.dev |
🚀 Snapshot Release (
|
| Package | Version | Info |
|---|---|---|
@graphql-hive/apollo |
0.42.1-alpha-20251121163430-d0c939c9774f0ca022135c509ff41705d27f511e |
npm ↗︎ unpkg ↗︎ |
@graphql-hive/cli |
0.53.5-alpha-20251121163430-d0c939c9774f0ca022135c509ff41705d27f511e |
npm ↗︎ unpkg ↗︎ |
@graphql-hive/core |
0.15.1-alpha-20251121163430-d0c939c9774f0ca022135c509ff41705d27f511e |
npm ↗︎ unpkg ↗︎ |
@graphql-hive/envelop |
0.38.1-alpha-20251121163430-d0c939c9774f0ca022135c509ff41705d27f511e |
npm ↗︎ unpkg ↗︎ |
@graphql-hive/yoga |
0.43.1-alpha-20251121163430-d0c939c9774f0ca022135c509ff41705d27f511e |
npm ↗︎ unpkg ↗︎ |
hive |
8.9.0-alpha-20251121163430-d0c939c9774f0ca022135c509ff41705d27f511e |
npm ↗︎ unpkg ↗︎ |
💻 Website PreviewThe latest changes are available as preview in: https://pr-7301.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/[email protected]?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": "d0c939c9774f0ca022135c509ff41705d27f511e",
"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": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:dockerfile": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:shared": "u6b8fibnz111ccr33bc9as1uf"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-ae65a6fe-5a19-4a17-98d8-e8895800331d/builder-ae65a6fe-5a19-4a17-98d8-e8895800331d0/l6ng2i73k9lp8u0qxkf8gt2ev",
"containerimage.config.digest": "sha256:d7f572a93cd34ac988c27b8672f225d6def7ce0c073f284d92bd0f0d0dfa89ea",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:ae3ccad60555de976eaa07193a46a41cd3684b9762d444611e8b509c3d756eab",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:ae3ccad60555de976eaa07193a46a41cd3684b9762d444611e8b509c3d756eab",
"image.name": "ghcr.io/graphql-hive/app:d0c939c9774f0ca022135c509ff41705d27f511e-amd64,ghcr.io/graphql-hive/app:new_ecosystem_illustration-amd64"
},
"buildx.build.warnings": [
{
"vertex": "sha256:98ea649818677f9dc973fd8dd26054ae09572412048e4518d0105dbd9e1a7854",
"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:98ea649818677f9dc973fd8dd26054ae09572412048e4518d0105dbd9e1a7854",
"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:98ea649818677f9dc973fd8dd26054ae09572412048e4518d0105dbd9e1a7854",
"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:acd251f23cfc3a40f1e35f051c7fda5986adea41b80e52fe71dd8f7b40ac680b",
"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
}
}
]
},
{
"vertex": "sha256:acd251f23cfc3a40f1e35f051c7fda5986adea41b80e52fe71dd8f7b40ac680b",
"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:acd251f23cfc3a40f1e35f051c7fda5986adea41b80e52fe71dd8f7b40ac680b",
"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:acd251f23cfc3a40f1e35f051c7fda5986adea41b80e52fe71dd8f7b40ac680b",
"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:acd251f23cfc3a40f1e35f051c7fda5986adea41b80e52fe71dd8f7b40ac680b",
"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
}
}
]
}
],
"commerce": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/[email protected]?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": "d0c939c9774f0ca022135c509ff41705d27f511e",
"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": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:dockerfile": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:shared": "u6b8fibnz111ccr33bc9as1uf"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-ae65a6fe-5a19-4a17-98d8-e8895800331d/builder-ae65a6fe-5a19-4a17-98d8-e8895800331d0/pd00i4m7vsd0kgcwvjh7ofat9",
"containerimage.config.digest": "sha256:95b4a80137c4245070572a72bb55a8f8618ac8cf4f502d62cc26be2e01e71202",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:b8e4f57eca9d1c07387f2ad2af72d96641a10f4030c369ef75830a0845d2fe88",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:b8e4f57eca9d1c07387f2ad2af72d96641a10f4030c369ef75830a0845d2fe88",
"image.name": "ghcr.io/graphql-hive/commerce:d0c939c9774f0ca022135c509ff41705d27f511e-amd64,ghcr.io/graphql-hive/commerce:new_ecosystem_illustration-amd64"
},
"composition-federation-2": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/[email protected]?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": "d0c939c9774f0ca022135c509ff41705d27f511e",
"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": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:dockerfile": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:shared": "u6b8fibnz111ccr33bc9as1uf"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-ae65a6fe-5a19-4a17-98d8-e8895800331d/builder-ae65a6fe-5a19-4a17-98d8-e8895800331d0/5tckicr48lxl4wbox3yiqrehy",
"containerimage.config.digest": "sha256:74421f6a5617c73d8906f209a00e9a90180153e0a84c4a558cf7696662745a65",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:d377fabfbeb9dc0d5f1eb46347809cb70131498070166465441be3d2c3771367",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:d377fabfbeb9dc0d5f1eb46347809cb70131498070166465441be3d2c3771367",
"image.name": "ghcr.io/graphql-hive/composition-federation-2:d0c939c9774f0ca022135c509ff41705d27f511e-amd64,ghcr.io/graphql-hive/composition-federation-2:new_ecosystem_illustration-amd64"
},
"emails": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/[email protected]?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": "d0c939c9774f0ca022135c509ff41705d27f511e",
"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": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:dockerfile": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:shared": "u6b8fibnz111ccr33bc9as1uf"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-ae65a6fe-5a19-4a17-98d8-e8895800331d/builder-ae65a6fe-5a19-4a17-98d8-e8895800331d0/pam1bic0bqe81plp5iyjg2rpd",
"containerimage.config.digest": "sha256:53a96dd80d897aadd57371d745ec9310194b539078f349284d19ff733c632668",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:d48d51bc4e631e8110a43eb60d831c4dffee6d7c869252a6d72d857722c72196",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:d48d51bc4e631e8110a43eb60d831c4dffee6d7c869252a6d72d857722c72196",
"image.name": "ghcr.io/graphql-hive/emails:d0c939c9774f0ca022135c509ff41705d27f511e-amd64,ghcr.io/graphql-hive/emails:new_ecosystem_illustration-amd64"
},
"otel-collector": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/[email protected]?platform=linux%2Famd64",
"digest": {
"sha256": "0f2d5c38dd7a4f4f733e688e3a6733cb5ab1ac6e3cb4603a5dd564e5bfb80eed"
}
},
{
"uri": "pkg:docker/[email protected]?platform=linux%2Famd64",
"digest": {
"sha256": "7d1571fea7cdc08fe7f37d4eacf06dfe5756366acb7bdd33cf26a7c422fed993"
}
}
],
"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": "d0c939c9774f0ca022135c509ff41705d27f511e",
"local-sessionid:dockerfile": "u6b8fibnz111ccr33bc9as1uf"
},
"locals": [
{
"name": "context"
},
{
"name": "dockerfile"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-ae65a6fe-5a19-4a17-98d8-e8895800331d/builder-ae65a6fe-5a19-4a17-98d8-e8895800331d0/qn35y6h4mvhmi1q33ah7v909f",
"containerimage.config.digest": "sha256:fb0b9eb508571f8053c74c0d96231261a31026ac71c4ae5cff763df4eac525a7",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:aac67c984479e94cc426781991fd4e8675d42a8178fbbcee4fdcf7d95a62c0d3",
"size": 1089,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:aac67c984479e94cc426781991fd4e8675d42a8178fbbcee4fdcf7d95a62c0d3",
"image.name": "ghcr.io/graphql-hive/otel-collector:d0c939c9774f0ca022135c509ff41705d27f511e-amd64,ghcr.io/graphql-hive/otel-collector:new_ecosystem_illustration-amd64"
},
"policy": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/[email protected]?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": "d0c939c9774f0ca022135c509ff41705d27f511e",
"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": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:dockerfile": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:shared": "u6b8fibnz111ccr33bc9as1uf"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-ae65a6fe-5a19-4a17-98d8-e8895800331d/builder-ae65a6fe-5a19-4a17-98d8-e8895800331d0/z25upyqkhd5gg0auculx9bwgn",
"containerimage.config.digest": "sha256:ef5b0ad47a926ba197056557c03b1ce68b6711c712a68a98b742611c82c69a90",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:e1584421477f615164c98eb404b814fd385d8cbf48b60dd92c6a0e5eda3d6348",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:e1584421477f615164c98eb404b814fd385d8cbf48b60dd92c6a0e5eda3d6348",
"image.name": "ghcr.io/graphql-hive/policy:d0c939c9774f0ca022135c509ff41705d27f511e-amd64,ghcr.io/graphql-hive/policy:new_ecosystem_illustration-amd64"
},
"schema": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/[email protected]?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": "d0c939c9774f0ca022135c509ff41705d27f511e",
"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": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:dockerfile": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:shared": "u6b8fibnz111ccr33bc9as1uf"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-ae65a6fe-5a19-4a17-98d8-e8895800331d/builder-ae65a6fe-5a19-4a17-98d8-e8895800331d0/dzqd5pjq0h1gtym0pxoqvo1yx",
"containerimage.config.digest": "sha256:690efdf9cc9d0c3f6668dfbaead85c7e00a70ec5a5b97730acb0496c4e24b303",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:2a2865d5525588dcbc57e7cb49ef769af188fdcf7a250603a4b729e4274e6282",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:2a2865d5525588dcbc57e7cb49ef769af188fdcf7a250603a4b729e4274e6282",
"image.name": "ghcr.io/graphql-hive/schema:d0c939c9774f0ca022135c509ff41705d27f511e-amd64,ghcr.io/graphql-hive/schema:new_ecosystem_illustration-amd64"
},
"server": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/[email protected]?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": "d0c939c9774f0ca022135c509ff41705d27f511e",
"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": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:dockerfile": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:shared": "u6b8fibnz111ccr33bc9as1uf"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-ae65a6fe-5a19-4a17-98d8-e8895800331d/builder-ae65a6fe-5a19-4a17-98d8-e8895800331d0/7k6w3mfvn153t1pcui1id0e70",
"containerimage.config.digest": "sha256:8ad6e250197d38488023508c5b890bf5c7712072aecf4287870c4af0f84970c3",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:9860699b6d31f0bce674fadcff2809f9fff0483a23f41e6ee26c8643a9f2ba96",
"size": 2076,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:9860699b6d31f0bce674fadcff2809f9fff0483a23f41e6ee26c8643a9f2ba96",
"image.name": "ghcr.io/graphql-hive/server:d0c939c9774f0ca022135c509ff41705d27f511e-amd64,ghcr.io/graphql-hive/server:new_ecosystem_illustration-amd64"
},
"storage": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/[email protected]?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": "d0c939c9774f0ca022135c509ff41705d27f511e",
"context:dist": "local:dist",
"context:shared": "local:shared",
"frontend.caps": "moby.buildkit.frontend.contexts+forward",
"local-sessionid:context": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:dockerfile": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:shared": "u6b8fibnz111ccr33bc9as1uf"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-ae65a6fe-5a19-4a17-98d8-e8895800331d/builder-ae65a6fe-5a19-4a17-98d8-e8895800331d0/kp0n4qd3gh6igzwqz3dl7lnvy",
"containerimage.config.digest": "sha256:708132245f09b91c06ef60a30f93201993ed5e1483472c842d6acb185d5a3872",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:c1e82247c910e14aa4ffd0ab0644cd1b7bb0a1ecbf0f2387855c95159ced3cb0",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:c1e82247c910e14aa4ffd0ab0644cd1b7bb0a1ecbf0f2387855c95159ced3cb0",
"image.name": "ghcr.io/graphql-hive/storage:d0c939c9774f0ca022135c509ff41705d27f511e-amd64,ghcr.io/graphql-hive/storage:new_ecosystem_illustration-amd64"
},
"tokens": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/[email protected]?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": "d0c939c9774f0ca022135c509ff41705d27f511e",
"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": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:dockerfile": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:shared": "u6b8fibnz111ccr33bc9as1uf"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-ae65a6fe-5a19-4a17-98d8-e8895800331d/builder-ae65a6fe-5a19-4a17-98d8-e8895800331d0/ahzcp19yk812a9mnm6mualc3h",
"containerimage.config.digest": "sha256:d83c5680906a32569e3175c480dab45a325db8f69f877c71e85bdd16f4cb5f63",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:f9300fa3e03de2ab8ac76cad75495b8dcdc5523133672261f7bd00ad01acc13f",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:f9300fa3e03de2ab8ac76cad75495b8dcdc5523133672261f7bd00ad01acc13f",
"image.name": "ghcr.io/graphql-hive/tokens:d0c939c9774f0ca022135c509ff41705d27f511e-amd64,ghcr.io/graphql-hive/tokens:new_ecosystem_illustration-amd64"
},
"usage": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/[email protected]?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": "d0c939c9774f0ca022135c509ff41705d27f511e",
"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": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:dockerfile": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:shared": "u6b8fibnz111ccr33bc9as1uf"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-ae65a6fe-5a19-4a17-98d8-e8895800331d/builder-ae65a6fe-5a19-4a17-98d8-e8895800331d0/xwh6o69i8o0cdwvmgsk2qh37w",
"containerimage.config.digest": "sha256:ed20731a132395a3b71435ca4fddb379a2f00b14535a93bf3e9900c942a1659f",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:1a08be1a46a543a73e799c19e441a9e02626bcdeeead22d9973cfd63d121c002",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:1a08be1a46a543a73e799c19e441a9e02626bcdeeead22d9973cfd63d121c002",
"image.name": "ghcr.io/graphql-hive/usage:d0c939c9774f0ca022135c509ff41705d27f511e-amd64,ghcr.io/graphql-hive/usage:new_ecosystem_illustration-amd64"
},
"usage-ingestor": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/[email protected]?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": "d0c939c9774f0ca022135c509ff41705d27f511e",
"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": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:dockerfile": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:shared": "u6b8fibnz111ccr33bc9as1uf"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-ae65a6fe-5a19-4a17-98d8-e8895800331d/builder-ae65a6fe-5a19-4a17-98d8-e8895800331d0/q2bhaewm92d5gs7218n2w5d0b",
"containerimage.config.digest": "sha256:35a4fa83a70ed400c6fa66b06f5eac1bcf6aeb691e7c10eb3ab07bfe95c868c5",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:847034d4978fa8cee4404a687402f28e84da855f151f020af16a99acd7486439",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:847034d4978fa8cee4404a687402f28e84da855f151f020af16a99acd7486439",
"image.name": "ghcr.io/graphql-hive/usage-ingestor:d0c939c9774f0ca022135c509ff41705d27f511e-amd64,ghcr.io/graphql-hive/usage-ingestor:new_ecosystem_illustration-amd64"
},
"webhooks": {
"buildx.build.provenance": {
"builder": {
"id": ""
},
"buildType": "https://mobyproject.org/buildkit@v1",
"materials": [
{
"uri": "pkg:docker/[email protected]?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": "d0c939c9774f0ca022135c509ff41705d27f511e",
"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": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:dockerfile": "u6b8fibnz111ccr33bc9as1uf",
"local-sessionid:shared": "u6b8fibnz111ccr33bc9as1uf"
},
"locals": [
{
"name": "context"
},
{
"name": "dist"
},
{
"name": "dockerfile"
},
{
"name": "shared"
}
]
},
"environment": {
"platform": "linux/amd64",
"ProvenanceCustomEnv": null
}
}
},
"buildx.build.ref": "builder-ae65a6fe-5a19-4a17-98d8-e8895800331d/builder-ae65a6fe-5a19-4a17-98d8-e8895800331d0/t658bwh9n4tgliboaad63yu19",
"containerimage.config.digest": "sha256:acb4e21bb3596ebfb122554bf72c5d9a1f5db3857d2d1ba016c97dde9a5ad1c1",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:1cfc8a846f7982c0d3db6175e82dca865c27b4c30699fdf737d81d47f58c6852",
"size": 2075,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"containerimage.digest": "sha256:1cfc8a846f7982c0d3db6175e82dca865c27b4c30699fdf737d81d47f58c6852",
"image.name": "ghcr.io/graphql-hive/webhooks:d0c939c9774f0ca022135c509ff41705d27f511e-amd64,ghcr.io/graphql-hive/webhooks:new_ecosystem_illustration-amd64"
}
} |
Description
Added the new ecosystem illustration.
I cut out the "stepping-through with stroke offsets" animation for now, as it looked a bit off jarring when scrolling. Gonna give it another shot, but let's not wait for it before merging the overall structure.
Figma export behaved kinda funny here, so I edited the dashed paths by hand to make them overlap and reach outside of their grid column.
The dots should also be synced across short and long lines so they overlap, but it's not super trivial.