Goal: The goal of this project is to combine picos and Solid pods to build a Pico Data Store (PDS) that supports creating decentralized applications or dApps. dApps give people control over their apps and the data in them.
Primary persona is developer (dev)
Secondary personas are system administrator (SA) and project sponsor (PS)
P0: Must have for launch
P1: Nice to have for launch
P2: Post launch
I want to
So that I
I want to
So that I
create a pico with an associated pod
provide backend logic and storage for a dApp
creating a pico creates an associated pod with a unique ID
delete pico and associated pod with one action
can easily clean up when the pico is no longer needed.
deleting a pico deletes the associated pod and all its data
have full access to pod functionality within KRL
so that I can programmatically control the pod
Core pod API calls are mapped to Wrangler events and queries
Pod functionality is surfaced in a natural way for pico uses
easily write JS-based dApps that use picos and pods
demo application shows the usage of the library in a dApp running in a browser
have docs for Wrangler pod-related events and queries and the JS library
write dApps without digging into the code to figure out how it works.
all related events are documented with expected state changes and any follow-on events
all related queries and their expected return values are documented
all JS functions in library are documented
control access to the data in the pod progrmmatically
so my dApps can protect my user’s data
events for access control
queries for access control
I want to store pictures, icons, and other large artifacts in the pod and use them from the pico
so that dApps can do things like manage pictures, audio, and movies.
postlude command stores large file types
expressions can access artifacts in the pod
easily start up a pico engine and an associated pod server with a nginx proxy in front
easily run a backend server to support dApps
All associated docker and docker compose files are available
Commands to standup a new instance of the dApp back end are properly documented
run this all on AWS Fargate
so that I can easily standup a dApp backend without administering a server
configuration for Fargate is done and documented
A dApp backend can be started with console clicks
have a set of tests available that provide good coverage for the integration of the pico engine and pod server
so that I can have confidence in merging this into the Github repo
tests for lifecycle operations
tests for access control operations
Pod server will run alongside pico-engine. They are hosted in Docker and engine operations are coordinated using Docker Compose.
Each pico will have a separate pod with the pod ID being unique identifier that the pico controls.
The Wranglerwrangler:new_child_request event is modified to include attributes for adding a pod when the child is created.
Any specialized rules or functions necessary to configure and use the pod are available in a Wrangler extension for programmers to use.