https://github.com/ipfs-shipyard/pinning-service-compliance
This repo checks the compliance of IPFS Pinning Services against the pinning spec
https://github.com/ipfs-shipyard/pinning-service-compliance
ipfs ipfs-gui web3
Last synced: about 2 months ago
JSON representation
This repo checks the compliance of IPFS Pinning Services against the pinning spec
- Host: GitHub
- URL: https://github.com/ipfs-shipyard/pinning-service-compliance
- Owner: ipfs-shipyard
- License: other
- Created: 2022-03-01T19:00:44.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-01-03T10:44:56.000Z (5 months ago)
- Last Synced: 2025-03-27T04:09:21.095Z (2 months ago)
- Topics: ipfs, ipfs-gui, web3
- Language: TypeScript
- Homepage: https://ipfs-shipyard.github.io/pinning-service-compliance/
- Size: 6.15 MB
- Stars: 14
- Watchers: 8
- Forks: 10
- Open Issues: 33
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# @ipfs-shipyard/pinning-service-compliance
[](https://codecov.io/gh/ipfs-shipyard/pinning-service-compliance)
[](https://github.com/ipfs-shipyard/pinning-service-compliance/actions/workflows/js-test-and-release.yml?query=branch%3Amain)> The compliance test suite for [IPFS Pinning Service API Spec](https://ipfs.github.io/pinning-services-api-spec/)
## Getting started
### Run the compliance checker against a service:
***Disclaimer***: It is recommended to use an `auth_token` separate from your production/live services. The compliance checks will do their best not to corrupt any existing pins you have, but consistent tests without consistent data is challenging.
```bash
npx @ipfs-shipyard/pinning-service-compliance -s
```## Development
### Run the script
```bash
npm ci
npm run buildnpm start -- -s $API_ENDPOINT $ACCESS_TOKEN
# or multiple endpoints
npm start -- -s $API_ENDPOINT1 $ACCESS_TOKEN1 -s $API_ENDPOINT2 $ACCESS_TOKEN2
```### Debugging
To debug problems, you should use the `-d` flag, and the `dev-start` script:
```bash
npm run dev-start -- -s $API_ENDPOINT $ACCESS_TOKEN
```## FAQ
### What is a Compliance Check?
A compliance check consists of:1. An API call
2. A Payload
3. An expected response
4. A summary### How to avoid typing secrets by hand?
To avoid setting secrets by hand:
```bash
cp .env-copy .env
```
Then replace all variables with the appropriate endpoints and tokens# License
Licensed under either of
- Apache 2.0, ([LICENSE-APACHE](https://github.com/ipfs-shipyard/pinning-service-compliance/LICENSE-APACHE) / )
- MIT ([LICENSE-MIT](https://github.com/ipfs-shipyard/pinning-service-compliance/LICENSE-MIT) / )# Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.