Reserve "/api/v0/extensions/{uuid}/" or similar for api calls to non-standard enhancements of go-ipfs #8698
Closed
3 tasks done
Labels
kind/feature
A new feature
Checklist
Description
Reserve "/api/v0/extensions/{uuid}/" or similar for api calls to non-standard functionality enhancements of go-ipfs, e.g. transparent encryption or the CID allow / deny API proposal in #7871.
This proposal is inspired by the well thought out approach to extensibility and modularity of the RISC-V microprocessor instruction set architecture, as outlined in the RISC-V microprocessor ISA specification (pages 141-152). It refers to the "front facing" api, not to any actual IPFS protocols themselves.
In short, the idea is to distinguish between
This way the functionality of go-ipfs could be enhanced by using a modified version of go-ipfs itself, or by hiding an unmodified go-ipfs node behind a proxy that provides the additional functionality (e.g. transparent encryption) without the risk of running into collisions with standard api endpoints in the future.
In the example with the transparent encryption layer the proxy could perform decryption and encryption operations on data it gets from or puts into ipfs, while any "out-of-band" actions or configuration relating to this additional functionality would be accessed via calls to its unique api endpoints under "/api/v0/extensions/" .
Obviously, it also eliminates the need for creators of non-standard extensions to coordinate with each other when naming api endpoints. At the same time, changes to any part of the api except under "/api/v0/extensions/" can focus on core (or closely related) IPFS functionality.
The text was updated successfully, but these errors were encountered: