{"id":25895470,"url":"https://github.com/diamondlightsource/graph-federation","last_synced_at":"2026-04-01T17:19:31.489Z","repository":{"id":241750471,"uuid":"771623871","full_name":"DiamondLightSource/graph-federation","owner":"DiamondLightSource","description":"The Diamond data gateway deployment","archived":false,"fork":false,"pushed_at":"2026-03-25T10:20:37.000Z","size":237,"stargazers_count":2,"open_issues_count":2,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-25T13:12:47.441Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DiamondLightSource.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-03-13T16:35:06.000Z","updated_at":"2026-03-25T10:20:12.000Z","dependencies_parsed_at":"2024-05-30T00:13:34.063Z","dependency_job_id":"d468fb85-2f1d-4aa7-8b19-2a8b3a7922c8","html_url":"https://github.com/DiamondLightSource/graph-federation","commit_stats":null,"previous_names":["diamondlightsource/graph-federation"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/DiamondLightSource/graph-federation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiamondLightSource%2Fgraph-federation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiamondLightSource%2Fgraph-federation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiamondLightSource%2Fgraph-federation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiamondLightSource%2Fgraph-federation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DiamondLightSource","download_url":"https://codeload.github.com/DiamondLightSource/graph-federation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiamondLightSource%2Fgraph-federation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-02T22:31:32.073Z","updated_at":"2026-04-01T17:19:31.479Z","avatar_url":"https://github.com/DiamondLightSource.png","language":"JavaScript","readme":"# Data Gateway\n\nA deployment of a GraphQL router, acting as the Data Gateway for Diamond Light Source.\n\n## Docs\n\nDocs can be found [on github pages](https://diamondlightsource.github.io/graph-federation/)\n\n## Structure\n\n- `supergraph-config.yaml` \u0026 `schema/`: A description of subgraph schemas and how they are composed a runtime execution configuration for the Cosmo Router.\n- `apps.yaml` \u0026 `charts/apps/`: An [ArgoCD](https://argoproj.github.io/cd/) [App-of-Apps](https://argo-cd.readthedocs.io/en/stable/operator-manual/cluster-bootstrapping/#app-of-apps-pattern) used to deploy the other charts in various configurations\n- `charts/graph`: A Helm chart used to deploy the [Cosmo Router](https://wundergraph.com/router-gateway/), including the generated router-execution-config.json, mounted via a ConfigMap.\n- `charts/monitoring`: A Helm chart used to deploy [Prometheus](https://prometheus.io/) and [Jaeger](https://www.jaegertracing.io/) for observability\n- `action.yaml`: A [GitHub action](https://github.com/features/actions) used to create subgraph schema update pull requests\n- `mkdocs.yaml` \u0026 `docs/`: User facing documentation, built with [mkdocs](https://www.mkdocs.org/)\n\n## Action\n\n### Update Supergraph\n\nThis workflow may be used to create or update a Subgraph Schema by adding the schema to the `schema/` directory and an entry in the `supergraph-config.yaml` of this repository. The workflow composes the federated graph using Cosmo's composition pipeline, generates a new router-execution-config.json.\nThe action can be used to simply check that the schema will federate by setting `publish` to `false`.\n\n#### Usage\n\n##### Inputs\n\n```yaml\n- uses: diamondlightsource/graph-federation@main\n  with:\n    # A unique name given to the subgraph.\n    # Required.\n    name:\n\n    # The public-facing URL of the subgraph.\n    # Required.\n    routing-url:\n\n    # Optional subscription URL (WS/SSE) for Cosmo\n    subscription-url:\n    subscription-protocol: ws\n\n    # The name of an artifact from this workflow run containing the subgraph schema.\n    # Required.\n    subgraph-schema-artifact:\n\n    # The name of the subgraph schema file within the artifact.\n    # Required.\n    subgraph-schema-filename:\n\n    # The name of the artifact to be created containing the generated router execution config.\n    # Optional. Default is 'router-execution-config'\n    execution-config-artifact:\n\n    # The name of the generated execution config within the created artifact.\n    # Optional. Default is 'router-execution-config.json'\n    execution-config-filename:\n\n    # The ID of the GitHub App used to create the commit / pull request\n    # Required when publish is true.\n    github-app-id:\n\n    # The private key of the GitHub App used to create the commit / pull request\n    # Required when publish is true.\n    github-app-private-key:\n\n    # A boolean value which determines whether a pull request should be created\n    # Optional. Default is ${{ github.event_name == 'push' \u0026\u0026 startsWith(github.ref, 'refs/tags') }}\n    publish:\n```\n\n##### Outputs\n\n| Name                           | Description                                                    | Example                                                                     |\n| ------------------------------ | -------------------------------------------------------------- | --------------------------------------------------------------------------- |\n| execution-config-artifact-id   | The id of the artifact containing the router execution config  | 1234                                                                        |\n| execution-config-artifact-url  | The url of the artifact containing the router execution config | \u003chttps://github.com/example-org/example-repo/actions/runs/1/artifacts/1234\u003e |\n\n##### Example\n\n```yaml\nsteps:\n  - name: Create Test Subgraph schema\n    run: \u003e\n      echo \"\n        schema {\n          query: Query\n        }\n        type Query {\n          _empty: String\n        }\n      \" \u003e test-schema.graphql\n\n  - name: Upload Test Subgraph schema\n    uses: actions/upload-artifact@v4.4.3\n    with:\n      name: test-schema\n      path: test-schema.graphql\n\n  - name: Update Composition\n    uses: diamondlightsource/graph-federation@main\n    with:\n      name: test\n      routing-url: https://example.com/graphql\n      subgraph-schema-artifact: test-schema\n      subgraph-schema-filename: test-schema.graphql\n      github-app-id: 1010045\n      github-app-private-key: ${{ secrets.GRAPH_FEDERATOR }}\n      publish: false\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiamondlightsource%2Fgraph-federation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiamondlightsource%2Fgraph-federation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiamondlightsource%2Fgraph-federation/lists"}