Git Product home page Git Product logo

stonecutter's Introduction

stonecutter

A D-CENT project: an easily deployable oauth server for small organisations.

There has been an update to the deployment script deploy_prod.sh. If you have deployed an instance of Stonecutter to an Ubuntu server using Ansible, you will need to rerun the last two steps of the deployment: Configure with ansible and Deploy application to the server.

Development VM

You can develop and run the application in a VM to ensure that the correct versions of Stonecutter's dependencies are installed. You will need VirtualBox, Vagrant and Ansible installed.

First, clone the repository.

Navigate to the ops/ directory of the project and run:

vagrant up development

The first time this is run, it will provision and configure a new VM.

When the VM has started, access the virtual machine by running:

vagrant ssh

The source folder will be located at /var/stonecutter.

After initial setup, navigate to the source directory and build the assets with:

cd /var/stonecutter
gulp build

Running

To start the app, run:

./start_app_vm.sh

To start a web server for the application in development mode, run:

lein ring server-headless

NB: running the application like this will save users into an in memory cache that will be destroyed as soon as the app is shutdown.

Running test suite

To run all tests, use this command:

lein test

Commands and aliases can be found in the project.clj file.

Running the prototype

Simply type:

gulp server

Architecture

The Continuous Delivery build and deployment architecture is documented here.

The Hosting Architecture is documented here.

Deployment

To deploy using Docker, see here.

To deploy to an Ubuntu server using Ansible, see here.

stonecutter's People

Contributors

cjcheshire avatar biaspro avatar johncowie avatar aewelch avatar marklevi avatar antoniou avatar natalieesk avatar liquidvapour avatar sarrionandia avatar jkammer avatar

Stargazers

Keyth M Citizen  avatar Connor Turland avatar tomguim avatar Robin van Boven avatar  avatar Indika avatar Scott Cazan avatar Dez avatar  avatar Vic avatar  avatar Eduard Cespedes Borras avatar Alex Rollin avatar Mayel de Borniol avatar Nick Zbinden avatar Del Sozou avatar Sergey Mezentsev avatar Val Packett avatar Tobias Clemson avatar  avatar Kemal Gürsoy avatar David A. Lareo avatar ziggy avatar Mitchel Kuijpers avatar Jeremy Sewell avatar Pierre Ozoux avatar jon ⚝ avatar Paul Mackay avatar Randy Lien avatar LY Cheng avatar Chia-liang Kao avatar Malcolm Sparks avatar Amaury Van Espen avatar Josef Davies-Coates avatar

Watchers

Róbert Viðar Bjarnason avatar Jaromil avatar Sander van der Waal avatar Alasdair Blackwell avatar James Cloos avatar  avatar Nicola Hughes avatar Gareth avatar  avatar Samuel Rinnetmäki avatar  avatar Jaakko Korhonen avatar Amaury Van Espen avatar Jaya Klara Brekke avatar Fli.* avatar  avatar Chris Yeoward avatar Lucy Fang avatar  avatar

stonecutter's Issues

send test email when stonecutter is launched

When stonecutter is started it should attempt to send a test email if email details have been provided to the application. This is so that an organisation can tell that the email service is correctly integrated.

remove admins on config change

Stonecutter should remove existing admins if the config contains new admin details, and then add a new admin account with the provided details.

Currently, if the admin details are changed then it creates a new admin account, and preserves the old one.

Persist client details

Add functionality to write client details to clients.yml file, so that client details will persist after the application is restarted.
Currently any details not present in the Clients.yml file at startup will be lost if the application stops and is restarted. Instead any changes to the apps list page should be reflected in this file during runtime

clean up translations files

The client translation .yml files are still present, despite only being used in the form of being merged with the normal translations files. these client files should be combined with the normal translations files, so that it is clearer that client side translations are handled by the client_translations.clj file

remove email warnings if email is not configured

if email notifications are not configured, users find it very confusing to see messages informing them that they should expect to receive a confirmation email.

These warning messages should be disabled if the email details are not supplied, or are invalid

add Userinfo enpoint

Stonecutter does not currently have a Userinfo endpoint. It should to be properly compliant with openID connect, and to better reflect the expected behaviour, rather than passing the information along with the authentication token.

see here for the specification

Detect and remove trailing slash when adding new apps

When adding new apps to stonecutter, if a trailing slash is present then the necessary routing will not work. Stonecutter should detect if a new application has a trailing slash so that it does not add an extra one when attempting to return authorisation tot he application in question

Fix Blank unshare profile card buttons issue

If a user has shared their profile card with an application that no longer exists, for example, if the app was restarted after a change to the clients file, then they will be left with a blank button on their profile page to unshare their profile card. This button can currently not be removed, and should ideally not show up at all in this case

Add a language toggle

Stonecutter should have a language toggle so that users can change the language to differ from the language that their browser runs in.

This toggle should be visible on all pages, and should use a cookie to set the language if the user is not logged in, or should add a variable to the user's profile if they are logged in.

These variables should be preferentially used by the translations that are already implemented, before defaulting back to the browser's language

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.