Go to file
Hector Sanjuan d7da1b6044 API: Support JWT bearer token authorization
The Pinning Services API standard mandates Bearer token authentication.

This adds JWT bearer token authentication to the IPFS Cluster REST and PINSVC
APIs.

The basic_auth_credentials configuration option needs to be not null and have
at least one username/passwords entry.

A user authenticated via Basic Auth can then "POST /token" and obtain a json
object:

```json { "token" : "<JWTtoken>" } ```

The JWT token has the "iss" (issuer) field set to the Basic auth user that
authorized its creation and is HMAC-signed with its password.

When basic-auth-credentials are set, the APIs will verify that requests come
with either Basic Auth authorization header or with a Bearer token
authorization header.

Bearer tokens will be decoded and the signature will be verified against the
password of the issuer.

At the moment we provide no support to revoke tokens, set "expiration date",
"not before" etc, but this may come in the future.
2022-06-20 20:04:39 +02:00
.github Create codeql-analysis.yml 2022-06-16 17:44:34 +02:00
adder CodeQL analysis: fix some security warnings 2022-06-16 17:44:34 +02:00
allocator/balanced Enable spell checking and fix spelling errors (using US locale) 2022-06-16 17:43:30 +02:00
api API: Support JWT bearer token authorization 2022-06-20 20:04:39 +02:00
cmd Rename links to use the ipfscluster.io domain 2022-06-16 17:43:30 +02:00
cmdutils Enable spell checking and fix spelling errors (using US locale) 2022-06-16 17:43:30 +02:00
config Dependency upgrades (#1451) 2021-08-16 17:52:31 +02:00
consensus Enable spell checking and fix spelling errors (using US locale) 2022-06-16 17:43:30 +02:00
datastore Enable spell checking and fix spelling errors (using US locale) 2022-06-16 17:43:30 +02:00
docker Docker: allow controlling datastore backend via IPFS_CLUSTER_DATASTORE 2021-06-29 15:44:24 +02:00
informer Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
ipfsconn/ipfshttp Dependency upgrades (#1711) 2022-06-20 18:23:50 +02:00
monitor Enable spell checking and fix spelling errors (using US locale) 2022-06-16 17:43:30 +02:00
observations Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
pintracker Rename Cancelled to Canceled in operationtracker 2022-06-16 17:43:30 +02:00
pstoremgr Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
rpcutil Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
sharness API: Support JWT bearer token authorization 2022-06-20 20:04:39 +02:00
state Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
test Dependency upgrades (#1711) 2022-06-20 18:23:50 +02:00
version Release v1.0.1 2022-06-16 17:43:30 +02:00
.codeclimate.yml codeclimate 2018-08-07 20:12:05 +02:00
.codecov.yml Codecov: disable comments 2020-10-05 08:41:42 +02:00
.dockerignore Issue #259: Address CR comments 2017-12-04 13:59:48 +01:00
.gitignore Feat: ipfs-cluster-follow 2019-12-07 15:38:59 +01:00
add_test.go Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
allocate.go Improve badges in README 2022-06-16 17:43:30 +02:00
CHANGELOG.md Enable spell checking and fix spelling errors (using US locale) 2022-06-16 17:43:30 +02:00
cluster_config_test.go allocator: Filter out metrics from non-trusted peers when configured 2022-03-01 11:25:16 +01:00
cluster_config.go Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
cluster_test.go Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
cluster.go Improve badges in README 2022-06-16 17:43:30 +02:00
clusterhost.go Dependency upgrades (#1711) 2022-06-20 18:23:50 +02:00
config_test.go Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
connect_graph.go Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
CONTRIBUTING.md Rename links to use the ipfscluster.io domain 2022-06-16 17:43:30 +02:00
COPYRIGHT Dual-license the codebase. 2019-03-01 20:12:19 +00:00
docker-compose.yml Enable spell checking and fix spelling errors (using US locale) 2022-06-16 17:43:30 +02:00
Dockerfile Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
Dockerfile-bundle Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
Dockerfile-test Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
go.mod API: Support JWT bearer token authorization 2022-06-20 20:04:39 +02:00
go.sum API: Support JWT bearer token authorization 2022-06-20 20:04:39 +02:00
ipfscluster_test.go Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
ipfscluster.go Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
LICENSE Chore: Add license file with URLS (#1014) 2020-03-06 13:52:19 +01:00
LICENSE-APACHE Chore: Add license file with URLS (#1014) 2020-03-06 13:52:19 +01:00
LICENSE-MIT Chore: Add license file with URLS (#1014) 2020-03-06 13:52:19 +01:00
logging.go Merge branch 'master' into feat/pinning-api 2022-03-10 13:41:54 +01:00
Makefile Error on mispellings 2022-06-16 17:43:30 +02:00
peer_manager_test.go Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
pnet_test.go Streaming Peers(): make Peers() a streaming call 2022-03-23 01:27:57 +01:00
README.md README: more improvements to badges 2022-06-16 17:43:30 +02:00
release.sh release.sh: improve script. 2021-01-14 14:06:53 +01:00
rpc_api.go Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00
rpc_policy.go Feat: add a new "pinqueue" informer component 2022-06-16 17:43:29 +02:00
util.go Migrate from ipfs/ipfs-cluster to ipfs-cluster/ipfs-cluster 2022-06-16 17:43:30 +02:00

IPFS Cluster

Made by Main project Discord Matrix channel pkg.go.dev Go Report Card codecov

Pinset orchestration for IPFS

logo

IPFS Cluster provides data orchestration across a swarm of IPFS daemons by allocating, replicating and tracking a global pinset distributed among multiple peers.

There are 3 different applications:

  • A cluster peer application: ipfs-cluster-service, to be run along with go-ipfs as a sidecar.
  • A client CLI application: ipfs-cluster-ctl, which allows easily interacting with the peer's HTTP API.
  • An additional "follower" peer application: ipfs-cluster-follow, focused on simplifying the process of configuring and running follower peers.

Are you using IPFS Cluster?

Please participate in the IPFS Cluster user registry.


Table of Contents

Documentation

Please visit https://ipfscluster.io/documentation/ to access user documentation, guides and any other resources, including detailed download and usage instructions.

News & Roadmap

We regularly post project updates to https://ipfscluster.io/news/ .

The most up-to-date Roadmap is available at https://ipfscluster.io/roadmap/ .

Install

Instructions for different installation methods (including from source) are available at https://ipfscluster.io/download .

Usage

Extensive usage information is provided at https://ipfscluster.io/documentation/ , including:

Contribute

PRs accepted. As part of the IPFS project, we have some contribution guidelines.

License

This library is dual-licensed under Apache 2.0 and MIT terms.

© 2022. Protocol Labs, Inc.