This documentation is part of Pod.
A Shared Pod is a type of Pod that multiple people can write to. For example:
- communities, e.g. people interested in plants, food, etc
- family
- data that you can contribute to help building community Machine Learning tools ("datasets")
- teams in companies
- wikipedia-like articles
- etc
In order for front-ends to send information to Shared Pods, they need to support their configuration.
Each Shared Pod has:
database_key
, which must be filled in by the user as it is a shared secret for all Shared Pod participants- The
owner
key of the Shared Pod. - URL of the Shared Pod (similar to the one of Pod itself).
It is the front-end-s decision on which data to send to a particular Shared Pod. It always needs to be done with user confirmation.
Shared Pods are currently implemented as a run mode of the Pod server.
The owner of the shared Pod hosts a public instance and gives
the owner
key and the database_key
to anyone they want.
Any person having this owner
and database_key
will then be able to
connect to the shared pod and write data to it.
This run mode is activated with the --shared-server
CLI parameter, and it means that the
server will only have create_item
and version
(write-only) endpoints working.
Because it is write-only, other users won't be able to read your data,
and you can submit even your sensitive data if you trust the Shared Pod maintainer.
In the future we expect users to be able to share data with more fine-grained permissions, e.g. by allowing reads but not edits, etc.
Shared Pod maintainer must access the database from the filesystem.
(To do so, they also need to have the database_key
of course.)
If you want to experiment with how a shared Pod works,
run your Pod with the --shared-server
CLI parameter.
For example, ./examples/run_development.sh --shared-server
.