A General Bikeshare Feed Specification dataset validator
The Canonical GBFS Validator is a tool to check the conformity of a GBFS feed against the official specification. It validates feeds up to GBFS version 3.0. This tool is built using the JSON Schemas, and the site is powered by Netlify.
The schemas in gbfs-validator/versions/gbfs-json-schema
is a git submodule of https://github.com/MobilityData/gbfs-json-schema.
Questions? Please open an issue or reach out on the #gbfs channel on the MobilityData Slack.
The validator is developed to be used “online” (hosted with a lambda function).
gbfs.json
fileThe validation rules are listed in RULES.md Have a suggestion for a new rule? Open an issue!
To build the project locally, you need:
Node.js. Minimum Node.js version v14.x.x
, or higher. Recommend Node.js version v18.x.x
.
brew install node
npm install --global yarn
Ports 8080, 9000 and 9229 need to be free
Download or clone the repository
git clone https://github.com/MobilityData/gbfs-validator.git
cd gbfs-validator
Install the requirements
yarn
Connect your local project to the gbfs-validator
Netlify site to access its environment variables
netlify link
Select Enter the site name
and enter gbfs-validator
Run dev environment locally
yarn run dev
Open localhost:8080
on your browser
The GBFS validator can be used as a Command Line Interface (CLI):
Download or clone the repository
git clone https://github.com/MobilityData/gbfs-validator.git
cd gbfs-validator
Execute the CLI script
node ./gbfs-validator/cli.js -u {http_address_of_gbfs_dataset} -s {local_path_to_output_report_file}
To get the list of supported paramters
node ./gbfs-validator/cli.js --help
Usage description and supported parameters
Usage: cli [OPTIONS]...
Options:
-v, --version output the version number
-u, --url
### Npm package
The gbfs-validator Node.js npm package is now accessible for integration into your projects. To learn how to install and utilize it effectively, please refer to the [README](./gbfs-validator/README.md) for comprehensive guidance.
## Projects based on this validator
[transport.data.gouv.fr GBFS validator tool](https://transport.data.gouv.fr/validation?type=gbfs) - Tool displaying interactive geofencing, station, and vehicle maps, the validation results, and metadata of GBFS feeds.
## Contributors
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://allcontributors.org/docs/en/overview) specification, find the [emoji key here](https://allcontributors.org/docs/en/emoji-key). Contributions of any kind welcome! Please check out our [Contribution guidelines](/CONTRIBUTING.md) for details.
:warning: for contributions on schemas, please see [Versions README](gbfs-validator/versions/README.md)
## OpenAPI Specification
:warning: **Subject to change**: This OpenAPI specification may change at any time. We do not recommend building any production systems that depend on this API directly.
The OpenAPI specification can be viewed at: https://mobilitydata.github.io/gbfs-validator/SwaggerUI/index.html.
## Acknowledgments
This project was originally created by Pierrick Paul ([@PierrickP](https://github.com/PierrickP)) at [fluctuo](https://fluctuo.com/) - MobilityData started maintaining the project in September 2021.