Giter Club home page Giter Club logo

agent-centric-prototyping-service's Introduction

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. Follow instructions there to have it installed.

We use Denon for running scripts. Follow instructions there to install it.

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 <B64_encoded_passphrase> 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.

agent-centric-prototyping-service's People

Contributors

zequez avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.