{"id":18948408,"url":"https://github.com/oxid-esales/graphql-base-module","last_synced_at":"2025-08-20T16:32:51.572Z","repository":{"id":35821157,"uuid":"169548529","full_name":"OXID-eSales/graphql-base-module","owner":"OXID-eSales","description":"The main framework for using GraphQL in OXID","archived":false,"fork":false,"pushed_at":"2024-05-28T15:50:44.000Z","size":4175,"stargazers_count":24,"open_issues_count":0,"forks_count":14,"subscribers_count":11,"default_branch":"b-7.1.x","last_synced_at":"2024-05-29T02:38:09.882Z","etag":null,"topics":["graphql","oxid","oxid-module"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OXID-eSales.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG-v7.md","contributing":"CONTRIBUTING.md","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}},"created_at":"2019-02-07T09:39:56.000Z","updated_at":"2024-05-31T09:51:08.465Z","dependencies_parsed_at":"2024-04-04T09:31:08.155Z","dependency_job_id":"9b61cf4a-e269-48d3-8c69-6f79607c7f00","html_url":"https://github.com/OXID-eSales/graphql-base-module","commit_stats":{"total_commits":830,"total_committers":29,"mean_commits":"28.620689655172413","dds":0.6313253012048192,"last_synced_commit":"bb0ff79f6a3225aea8af81c207bcf58221d1d9b7"},"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OXID-eSales%2Fgraphql-base-module","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OXID-eSales%2Fgraphql-base-module/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OXID-eSales%2Fgraphql-base-module/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OXID-eSales%2Fgraphql-base-module/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OXID-eSales","download_url":"https://codeload.github.com/OXID-eSales/graphql-base-module/tar.gz/refs/heads/b-7.1.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230438185,"owners_count":18225870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["graphql","oxid","oxid-module"],"created_at":"2024-11-08T13:13:28.924Z","updated_at":"2024-12-19T13:08:29.501Z","avatar_url":"https://github.com/OXID-eSales.png","language":"PHP","readme":"# oxid-esales/graphql-base\n\n[![Build Status](https://img.shields.io/github/workflow/status/OXID-eSales/graphql-base-module/CI?logo=github-actions\u0026style=for-the-badge)](https://github.com/OXID-eSales/graphql-base-module/actions)\n[![Build\nStatus](https://img.shields.io/sonar/quality_gate/OXID-eSales_graphql-base-module?server=https%3A%2F%2Fsonarcloud.io\u0026style=for-the-badge\u0026logo=sonarcloud)](https://sonarcloud.io/dashboard?id=OXID-eSales_graphql-base-module)\n\n[![Stable Version](https://img.shields.io/packagist/v/OXID-eSales/graphql-base?style=for-the-badge\u0026logo=composer\u0026label=stable)](https://packagist.org/packages/oxid-esales/graphql-base)\n[![Latest Version](https://img.shields.io/packagist/v/OXID-eSales/graphql-base?style=for-the-badge\u0026logo=composer\u0026label=latest\u0026include_prereleases\u0026color=orange)](https://packagist.org/packages/oxid-esales/graphql-base)\n[![PHP Version](https://img.shields.io/packagist/php-v/oxid-esales/graphql-base?style=for-the-badge)](https://github.com/oxid-esales/graphql-base-module)\n\nThis module provides:\n- a basic [GraphQL](https://www.graphql.org) implementation for the [OXID eShop](https://www.oxid-esales.com/)\n- authorization and authentication using [JWT](https://jwt.io)\n- a query to log you in and get a JWT for further authentication\n\n\n## Documentation\n\n* Full documentation, including GraphQL schema, can be found [here](https://docs.oxid-esales.com/interfaces/graphql/en/latest/).\n\n## Usage\n\nThis assumes you have OXID eShop (at least `OXID-eSales/oxideshop_ce: v7.1.0` component, which is part of the `7.1.0` compilation) up and running.\n\n## Branch Compatibility\n\n* 9.x versions (or b-7.1.x branch) are compatible with latest shop compilation 7.1.x resp. b-7.1.x  shop compilation branches\n* 8.x versions (or b-7.0.x branch) are compatible with latest shop compilation: 7.0.x resp. b-7.0.x shop compilation branches\n* 7.x versions (or b-6.5.x branch) are compatible with latest shop compilations: 6.5.x resp. b-6.5.x shop compilation branches\n* 6.x versions (or b-6.4.x branch) are compatible with latest shop compilations: 6.4.x resp. b-6.4.x shop compilation branches\n* 5.x versions (or b-6.3.x branch) are compatible with latest shop compilations: 6.3.x resp. b-6.3.x shop compilation branches (NOTE: no support for PHP 8 yet)\n\n### Install\n\n```bash\n# Install desired version of oxid-esales/graphql-base module, in this case - latest released 9.x version, While updating the version you should add additional flag --with-all-dependencies with below command.\n$ composer require oxid-esales/graphql-base ^9.0.0 --with-all-dependencies\n```\n\nYou should run migrations both after installing the module and after each module update:\n\n```bash\n$ vendor/bin/oe-eshop-doctrine_migration migrations:migrate oe_graphql_base\n```\n\nAfter requiring the module, you need to activate it, either via OXID eShop admin or CLI.\n\n```bash\n$ bin/oe-console oe:module:activate oe_graphql_base\n```\n\n### Update\n\nIf you when to update this module from older version to new version. Then run below command to ensure that all dependencies including in the composer.lock are updated that are compatible with each other.\n\n```bash\n$ composer update --with-all-dependencies\n```\n\n### How to use\n\nYou can use your favourite GraphQL client to explore the API, if you do not\nalready have one installed, you may use [Altair GraphQL Client](https://altair.sirmuel.design/).\n\nTo login and retrieve a token send the following GraphQL query to the server\n\n```graphql\nquery {\n    token (\n        username: \"admin@admin.com\",\n        password: \"admin\"\n    )\n}\n```\n\nYou could simply fire up your terminal and use `curl` to do a basic check\nif the GraphQL base module is up and running as expected. To retrieve a valid\ntoken you need to replace the username and password below with valid login\ncredentials.\n\n```bash\n$ curl http://oxideshop.local/graphql/ \\\n  -H 'Content-Type: application/json' \\\n  --data-binary '{\"query\":\"query {token(username: \\\"admin@admin.com\\\", password: \\\"admin\\\")}\"}'\n```\n\nYou should see a response similar to this:\n\n```json\n{\n    \"data\": {\n        \"token\": \"a-very-long-jwt\"\n    }\n}\n```\n\nThis `token` is then to be send as your authorization with every request in the\nHTTP `Authorization` header like this:\n\n```\nAuthorization: Bearer a-very-long-jwt\n```\n\n### How to extend\n\nThe information on extending any module can be found in the [OXID eSales documentation](https://docs.oxid-esales.com).\n\nHow to extend GraphQL module types and implement your new mutations and queries is shown in [OXID GraphQL API documentation](https://docs.oxid-esales.com/interfaces/graphql/en/7.0/tutorials/index.html).\n\n## Testing\n\n### Syntax check and static analysis\n\n```bash\n$ composer static\n```\n\n### Unit/Integration/Acceptance tests\n\n- install this module into a running OXID eShop\n- reset shop's database\n```bash\n$ bin/oe-console oe:database:reset --db-host=db-host --db-port=db-port --db-name=db-name --db-user=db-user --db-password=db-password --force\n```\n- run Unit/Integration tests\n```bash\n$ ./vendor/bin/phpunit -c vendor/oxid-esales/graphql-base/tests/phpunit.xml\n```\n- run Acceptance tests\n```bash\n$ SELENIUM_SERVER_HOST=selenium MODULE_IDS=oe_graphql_base vendor/bin/codecept run acceptance -c vendor/oxid-esales/graphql-base/tests/codeception.yml\n```\n\n## Issues\n\nTo report issues with GraphQL module please use the [OXID eShop bugtracking system](https://bugs.oxid-esales.com/).\n\n## Contributing\n\nYou like to contribute? 🙌 AWESOME 🙌\\\nGo and check the [contribution guidelines](CONTRIBUTING.md)\n\n## Build with\n\n- [GraphQLite](https://graphqlite.thecodingmachine.io/)\n- [lcobucci/jwt](https://github.com/lcobucci/jwt)\n\n## License\n\nOXID Module and Component License, see [LICENSE file](LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxid-esales%2Fgraphql-base-module","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foxid-esales%2Fgraphql-base-module","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxid-esales%2Fgraphql-base-module/lists"}