Skip to content

isabelle-platform/isabelle-core

Repository files navigation

isabelle-core

Build Status

Isabelle is a Rust-based framework for building safe and performant servers for the variety of use cases.

Features

  • Unified item storage with addition, editing and deletion support.
  • Collection hooks allowing plugins to do additional checks or synchronization.
  • Security checks.
  • E-Mail sending support.
  • Google Calendar integration.
  • Login/logout functionality.
  • One-time password support.

Endpoints

  1. GET /is_logged_in: check the login status.

Result:

```
{
    "username": "<username>",
    "id": <user id>,
    "role": [ "role_is_admin" ],
    "site_name": "Test",
    "site_logo": "Test Logo"
    "licensed_to": "Test Company"
}
```
  1. POST /login (username, password inside the post request):

    {
    	"succeeded": true/false,
    	"error": "detailed error",
    }
    
  2. POST /logout:

  3. GET /itm/list (collection, [id], [id_min], [id_max], [skip], [limit], [sort_key], [filter]): read the item from the collection

    {
    	"map": [ <id>: {} ],
    	"total_count": <value>
    }
    
  4. POST /itm/edit ("item" inside the post request and inside the query string, "collection" and "merge" = false/true in query): edit the item in collection.

    {
    	"succeeded": true/false,
    	"error": "detailed error",
    }
    
  5. POST /itm/del (collection, id): delete the item from the collection

    {
    	"succeeded": true/false,
    	"error": "detailed error",
    }
    

Dependencies

  • Python 3 is needed for Google Calendar integration

Building

Building Isabelle is as easy as Cargo invocation:

cargo build

Running

Use run.sh script:

./run.sh

License

MIT