Git Product home page Git Product logo

freemed-server's Introduction

FREEMED SERVER

Go Report Card codecov GoDoc Join the chat at https://gitter.im/freemed/freemed-server

Refactoring of FreeMED in Golang / Gin.

The backend uses:

The frontend uses:

Code in this repository can be run against a valid FreeMED 0.9.x series database with no modifications.

Caveats

  • MySQL's ONLY_FULL_GROUP_BY needs to be disabled -- at least until the queries have been rewritten to no longer require it. This can be temporarily accomplished with SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));, but should have the actual MySQL server configuration adjusted for it in production systems.

Architectural changes from FreeMED 0.9.x

  • Redis Sessions. Sessions are stored in Redis, to decrease load on the MySQL server. (TODO: Move to Redis cluster for full redundancy)
  • Authentication. Switched from cookies to renewable Bearer Authorization headers.
  • UI Architecture. Switched from GWT pre-generated specific javascript to simple jQuery frontend with Bootstrap using RESTful API.

Other CC/Opensource Resources

freemed-server's People

Contributors

jbuchbinder avatar

Stargazers

Nick Fn Blum avatar  avatar Anthony Gomes avatar 莫莫大船长 avatar jeromecc avatar

Watchers

James Cloos avatar  avatar Philipp Meng avatar Nick Fn Blum avatar

freemed-server's Issues

Fix token refresh logic

The JWT refresh logic is borked, in that we're not doing two specific things:

  1. A call to the API needs to actually indicate visually that a valid session isn't present, presumably by showing the login screen. If this isn't present, it seems to the end user as if the interface is inexplicably broken.

  2. If we're going to maintain a refreshed token, we need to make sure that we have some sort of logic for determining when and if it needs to be refreshed, rather than simply automatically refreshing every X seconds.

RBAC

This may need to be done in a separate library, but the phpgacl library needs to be ported to golang / gorp.

EDIT: Consider moving to gorbac instead.

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.