Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.2%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

PoC

Basic Info
  • Host: GitHub
  • Owner: spydx
  • License: mit
  • Language: Rust
  • Default Branch: main
  • Size: 17.2 MB
Statistics
  • Stars: 4
  • Watchers: 1
  • Forks: 0
  • Open Issues: 2
  • Releases: 0
Created about 4 years ago · Last pushed over 2 years ago
Metadata Files
Readme License Citation

README.md

Capability PoC - Instructions

PS: remember to clone with --recurse-submodules

sh git clone --recurse-submodules https://github.com/spydx/capability-poc.git cd capability-poc git submodule update --remote --recursive

Running the example

The recommended way to start this example is to use docker-compose. The build process will depend on your internet connection take anything from 15 min to 20+ min to build all the components.

Docker-compose

After installing Docker:

Bring everything up

```sh

docker-compise build # approx 15+ min docker-compose up ```

Launch a browser and access http://localhost:3000/

The process to be done is:

  • 1. GnapRequest
  • 2. Login at the AS
    1. Continuation Request (Authorization)
  • One or more of the desired actions.

Users

| Username | Password | |---|---| | kenneth | password | | alice | password | | bob | password |

Manually

You will need:

  • Rust/Cargo : install
  • SQLx-cli : cargo install sqlx-cli install
  • sqlx needs SQLite support, so either specify or leave for default.
  • npm for nextjs.
  • Add host.docker.internal pointing to 127.0.0.1 to in the local hosts file.

Ubuntu / Linux

You will need:

sh sudo apt install build-essential sudo apt install libssl-dev sudo apt install pkg-config rustup toolchain install nightly # do this if cargo doesn't do it automatically cargo check # after all above, this should work from the project root.

Building order

  1. GNAP

```sh

cd gnap docker-compose up -d # bring up REDIS and MongoDB. cd gnap_as cargo run ```

  1. simple-api ```sh

    cd simple-api cargo run ```

  2. cap-client

```sh

cd cap-client npm install npm run dev open http://localhost:3000/ ```

Database errors

Sometimes the Mongo database stops working correctly. If it does, then removing the data in the folder ./gnap/data/mongodb will cause a rebuild of the database to the clean working state with docker-compose up.

BibTex

bibtex @software{Fossen_Exploring_Capability-based_security_2022, author = {Fossen, Kenneth}, month = {6}, title = {{Exploring Capability-based security in software design with Rust}}, url = {https://github.com/spydx/capability-poc}, version = {1.0.0}, year = {2022} }

Owner

  • Name: Kenneth Fossen
  • Login: spydx
  • Kind: user
  • Location: Norway
  • Company: kefo

Software Engineer @bouvet, Master in Software Engineering and a Bachelor's in Computer Security from the University of Bergen @uib

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Fossen"
  given-names: "Kenneth"
title: "Exploring Capability-based security in software design with Rust"
version: 1.0.0
date-released: 2022-06-01
url: "https://github.com/spydx/capability-poc"

GitHub Events

Total
Last Year

Dependencies

gnap-cli/Cargo.toml cargo
  • httpmock 0.6.6 development
  • tokio-test 0.4.2 development
  • log 0.4.14
  • reqwest 0.11.9
  • serde 1.0.136
  • serde_json 1.0.79
  • tokio 1.17.0
  • uuid 0.8.2
cap-client/package-lock.json npm
  • 281 dependencies
cap-client/package.json npm
  • autoprefixer ^10.4.2 development
  • eslint 8.11.0 development
  • eslint-config-next 12.1.0 development
  • postcss ^8.4.8 development
  • tailwindcss ^3.0.23 development
  • next 12.1.0
  • react 17.0.2
  • react-dom 17.0.2
  • uuid ^8.3.2
docker-compose.yml docker
  • mongo 5
  • redis alpine
trait-bounds/Cargo.toml cargo
Cargo.toml cargo
http-auth-filter/Cargo.toml cargo
simple-api/Cargo.toml cargo