https://github.com/zequez/agent-centric-prototyping-service
A barebones server to easily try out some agent-centric app ideas without the need of decentralized tech
https://github.com/zequez/agent-centric-prototyping-service
Last synced: about 1 year ago
JSON representation
A barebones server to easily try out some agent-centric app ideas without the need of decentralized tech
- Host: GitHub
- URL: https://github.com/zequez/agent-centric-prototyping-service
- Owner: Zequez
- License: unlicense
- Created: 2021-08-29T01:41:41.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2021-08-31T00:53:57.000Z (almost 5 years ago)
- Last Synced: 2025-01-21T01:41:43.028Z (over 1 year ago)
- Language: TypeScript
- Size: 44.9 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Agent Centric Prototyping Service
Barebones server to use for agent-centric app prototyping that after maturation
can be progressively adapted to use more advanced protocols such as Holochain,
Secure Scuttlebutt, IPFS, etc.
## Characteristics
- **Agent-Centric:** This means that each participant has their own Document, that holds
all their data. This also means that if you wish to participate *as a group* with other
people, you would also have your own group-Document. Identify with a simple secret passphrase.
- **Public:** This means that all the data stored is open to be seen by anyone;
there are no secret information silos. Encrypt it yourself if you want. It also means that
it's a public utility, like a park or a beach; maintained by individuals, enjoyed by everyone.
- **Mutable:** This means that the data stored is mutable and we don't maintain a copy. Treat
the data as ephemeral. Back it up yourself if you want.
- **:** All the resources are available for everyone to use, so we don't need
to rely on Firebase or some other SASS service, we can all use a single server. This encurages to collaborate with other pilot projects.
## Responsibilities
- ✔ Be online and accessible from any website
- ✔ Optional authentication with a passphrase
- ✔ Store agents data
- ✔ Serve all agents data
- Serve agents data based on query
- Validate data storage according to agreements
- Store blobs on IPFS and serve them or use a pinning service
- Enforce limit on agent records size
- ✔ Playground panel to explore the all the service functionalities
## Usage
Public URL: https://agent-centric-prototyping-service.zequez.space
That is running on a Digital Ocean US$ 5 / month droplet.
All the deployment and everything is all handmade.
The server does not have any security policies to prevent abuse yet; so it's likely you could easily break it; if you figure out how to break it, create an issue.
So far there is no database, every participant data is stored on the filesystem as
an independent file.
### Start development server
The app build for [Deno](https://deno.land/). Follow instructions there to have it installed.
We use [Denon](https://deno.land/x/denon) for running scripts. Follow instructions there to install it.
```bash
denon dev
```
### GET /participants
Returns the whole dataset as JSON
### GET /participants/:agentName
Returns whole agent data as JSON
### POST /participants/:agentName
Saves whole agent data from JSON-encoded body.
Can be used Authorization
### DELETE /participants/:agentName
Deletes agent
Can be used with Authorization
### Authorization
Authorization is not obligatory; by default anyone can save any agent data unless
that agent has set a passphrase; which is stored on the server as a SHA3-512 hashed string.
Use header `Authorization: Basic ` when submitting agent data
and it will save the passphrase. Next time that agent data is submitted, the same
authorization passphrase must be used or the request will be rejected.
### Security
This is intended for prototyping and is untested code without any security guarantees.