Code Monkey home page Code Monkey logo

govern's Issues

Develop Govern Console - Phase 0 (MVP)

We should have a minimal UI to do the following:

  • Inspect the DAO & see relevant information
  • See current and past actions
  • Interact with actions (challenge, dispute, execute)

We can leverage the existing aragon/console repo for this.

Govern Server βˆ’ Phase 1

Initial version of the Govern API server, including:

  • Backend fetching data from TheΒ Graph: #59
  • Frontend (GraphQL API, queries only): #60
  • Single command launch (using Docker): #55

Epic: Implement API MVP

Abstract

API server to host at api.aragon.org or api.[govern app domain]. The Aragon Connect equivalent for Govern should hit the api instead of a subgraph directly

Why

  • DX is incredibly important for our product's success. Aragon Connect changed Aragon forever.
  • Aragon Connect is great, but having a more web2-like API is going to make it easier for non-crypto devs
  • API will allow us to monitor real use of our tools to detect usage patterns

Deliverables

MVP deliverables by priority:

  • Passthrough proxy to subgraph. Perform GraphQL queries directly to our host allowing us to hot swap the Graph node being used.
  • Basic JSON views (/daos, /daos/[dao]/queue, etc)
  • Basic API docs using something like https://swagger.io/resources/open-api/

Future features:

  • Create DAOs, schedule, challenge and execute actions via API (API pays for gas)
  • Register webhooks (eg. on DAO schedule send POST to dao.org/webhook)

Acceptance criteria

  • Once first feature is done, we can deploy and continue evolving
  • API is deployed on master pushes from CD on Github Actions
  • API is monitored for errors
  • API should be relatively easy to deploy for people to host mirrors (stop tradeoffs between great DX and decentralization)

Involved persons

Inspiration

Phases

Govern Server βˆ’ Phase 4

Add the following features to the Govern API server:

  • New frontend: REST API (might be a light, read-only version).
  • Complete logs.
  • Excellent self deploying story.

Govern Server βˆ’ Phase 3

Add the following features to the Govern API server:

  • Register Web Hooks.
  • Schedule, challenge and execute actions via API (API pays for gas).

Add contract linting

It'd be great to add a contract linting tool to the contract packages. Although not always useful, they can catch some issues or help align code.

Instead of solium, as our old codebases used, I would suggest adding solhint and using its prettier extension.

Implement CentralizedResolver arbitrator

Implement an IArbitrator that allows an address to resolve all disputes created by a particular address.

This will allow testing the new system in pre-prod/testnet in isolation, mocking protocol behavior

Govern Server: API documentation

Document the current state of the GraphQL API.

We could start with a single markdown file for now, then move to another system later if it makes sense.

Govern.js

  • JS library (browser + node) fetching data from a Govern Server, through its GraphQL API.
  • Reflects the Govern Server JS API.
  • Inspired by the Connect API.
  • Actions resulting in transactions can go through a local Ethereum provider or the Govern Server.

Should we use @aragon/govern.js as a package name? @izqui

Implementation: #77

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.