Giter VIP home page Giter VIP logo

Comments (13)

aeneasr avatar aeneasr commented on May 4, 2024

Yes, all store implementations are abstracted and it should be possible to implement other store backends. I would however do not recommend to use a No-SQL / Non-Acid solution for your auth* services.

RethinkDB, like probably all No-SQL databases, is not ACID compliant. Let's say you revoke a token. Without ACID compliance, the token will be revoked some time in the future. An attacker owning the revoked would therefore still have access although access has been revoked until RethinkDB has propagated the changes across the cluster.

from hydra.

aeneasr avatar aeneasr commented on May 4, 2024

If you want to use RethinkDB anyways (e.g. no need for uber-security) there are different stores that need to be implemented for this. For example:

I think most of them are pretty straight forward, you can always take a look at the postgres implementations if you want to.

If you need any help implementing or if you want to try things out feel free to ask me here or on our gitter channel: https://gitter.im/ory-am/hydra?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge

You can also play around with dockertest for rethinkDB integration tests :)

from hydra.

joeblew99 avatar joeblew99 commented on May 4, 2024

Thanks for the feedback from:
https://www.rethinkdb.com/docs/architecture/

.Write atomicity is supported on a per-document basis – updates to a single JSON document are guaranteed to be atomic. RethinkDB is different from other NoSQL systems in that atomic document updates aren’t limited to a small subset of possible operations – any combination of operations that can be performed on a single document is guaranteed to update the document atomically.

It maybe that this scope if atomicity is enough, but until idig through the DAL / CRUD in the code I can't say.
It all comes down to how relational your design is. If its no too much, its possible to scope everything to a su gle json dic for atomic reason.

from hydra.

aeneasr avatar aeneasr commented on May 4, 2024

Hey yep you're absolutely right. I was a little in a hurry and did not read up on everything, sorry for that :)

Atomicity is already one step in the right direction. If you don't manage an uber RethinkDB cluster, it should be a viable storage solution for Hydra. Osin (the OAuth2 library behind Hydra) actually already supports a RethinkDB: https://github.com/ahmet/osin-rethinkdb

You could play around with osin and osin-rethinkdb to get things started. Once that works it shouldn't be hard to get RethinkDB working for Hydra.

from hydra.

joeblew99 avatar joeblew99 commented on May 4, 2024

It's OK.

Nice. Good idea. Will take a crack at it tomorrow.
But I need all that hydra has, so will have to bite the bullet.

Cheers

On Tue, 29 Dec 2015, 20:30 Aeneas [email protected] wrote:

Hey yep you're absolutely right. I was a little in a hurry and did not
read up on everything, sorry for that :)

Atomicity is already one step in the right direction. If you don't manage
an uber RethinkDB cluster, it should be a viable solution for Hydra. Osin
(the OAuth2 library behind Hydra) actually already supports a RethinkDB:
https://github.com/ahmet/osin-rethinkdb

You could play around with osin and osin-rethinkdb to get things started.
Once that works it shouldn't be hard to get RethinkDB working for Hydra.


Reply to this email directly or view it on GitHub
#39 (comment).

from hydra.

leetal avatar leetal commented on May 4, 2024

I'm pro for adding RethinkDB. If you haven't already started working on it, I'll take a bite at it tomorrow. We use RethinkDB in our service backend and has so far not had any problems with atomicity, like pushing changes through the clusters immediately.

from hydra.

leetal avatar leetal commented on May 4, 2024

Update on this: 40% percent done last night. Will finish after work tonight.

from hydra.

aeneasr avatar aeneasr commented on May 4, 2024

You rock!

from hydra.

joeblew99 avatar joeblew99 commented on May 4, 2024

Hey Alexander. I never got time to do this , so thanks for this. I will be
able to help beta test for sure and contributed back I hope

On Mon, 8 Feb 2016, 10:16 Aeneas [email protected] wrote:

You rock!


Reply to this email directly or view it on GitHub
#39 (comment).

from hydra.

leetal avatar leetal commented on May 4, 2024

So, i didn't finish this today, but most certainly will tomorrow. I only have one function left in ladon (TestFindPoliciesForSubject) to implement but since that function is quite harsh to overview, i'll finish this tomorrow instead so i can get some sleep tonight ;)

@arekkas I think it's time to add rethinkdb support to dockertest as well. Right now all tests for rethinkdb are done locally instead of run in a container.

from hydra.

leetal avatar leetal commented on May 4, 2024

Ok, i think i'm done now :) Will need some live testing (how the heck i now do that?) and some smaller polishing bits, but at least hydra starts and sets upp all tables without giving any errors!! YAY!

from hydra.

aeneasr avatar aeneasr commented on May 4, 2024

good stuff! :)

from hydra.

joeblew99 avatar joeblew99 commented on May 4, 2024

If you can push and merge I can try it out on Monday

On Tue, 9 Feb 2016, 23:58 Aeneas [email protected] wrote:

good stuff! :)


Reply to this email directly or view it on GitHub
#39 (comment).

from hydra.

Related Issues (20)

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.